From owner-freebsd-wireless@FreeBSD.ORG Sun Sep 8 15:18:59 2013 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B3805C7E; Sun, 8 Sep 2013 15:18:59 +0000 (UTC) (envelope-from qinchenchong@gmail.com) Received: from mail-vc0-x234.google.com (mail-vc0-x234.google.com [IPv6:2607:f8b0:400c:c03::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4F37B22D6; Sun, 8 Sep 2013 15:18:59 +0000 (UTC) Received: by mail-vc0-f180.google.com with SMTP id gf11so3386248vcb.11 for ; Sun, 08 Sep 2013 08:18:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=PK2L8N9HmsxN3W7Wgx/CXG+4/W0k99xWaMSoyMBbk/M=; b=yh2LhpPV5JnZyJoVq3iB3wDGiH4C1HsjSFYB2+D4rYgIkg09jKmDGcABy/Pq/TSsji wwC0Y8RqP1QZu+YR/XFTumzRGN7heTXa/2yChwWmxiK/VHGMP6SmE0nAJKZcutGAuDr4 NZXBohrIvzfE/DWNXO+d3eMYJv8NGSl7Sks/ZwFbh/BTE5HWiWuXWXh1ICu+F+0PRr27 482qGDPkif6vUWQuXwUJEhCfb60sw5FOvWXamIJhBLAHcu6+fILmYjLDU4UIO2PTQxid BzGbZWy9ZywaafVRtLx0ygAq8uFke8Tas5/kNwzdoJ3DZQ3Sxz1wCpTYbJBKSKvqmjj4 uOwg== MIME-Version: 1.0 X-Received: by 10.58.136.4 with SMTP id pw4mr13061243veb.10.1378653538006; Sun, 08 Sep 2013 08:18:58 -0700 (PDT) Received: by 10.220.182.68 with HTTP; Sun, 8 Sep 2013 08:18:57 -0700 (PDT) In-Reply-To: References: Date: Sun, 8 Sep 2013 23:18:57 +0800 Message-ID: Subject: Re: Chenchong's work on net80211_ratectl From: Chenchong Qin To: Adrian Chadd Content-Type: multipart/mixed; boundary=047d7b5dba6866be5904e5e0ca7e X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "freebsd-wireless@freebsd.org" X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Sep 2013 15:18:59 -0000 --047d7b5dba6866be5904e5e0ca7e Content-Type: text/plain; charset=ISO-8859-1 Hi! I've added the common ratectl state as an mbuf tag! After days of frustration (compile errors, boot failed, kernel panics, suddenly kernel freezing...), it seems that ath now can use 11n-aware net80211 ratectl api to do rate control. Attachment[0] is the diff of modifications to dev/ath. Changes to net80211 is minor this time. Just add some debug msgs to it. Please reference my gsoc svn repo . It's worth mentioning that sometimes the kernel will "freezing" (it looks like all things stop working, screen is freezing, keyboard and mouse are not responding) after wireless stuff start working for a while. At first, I consider it caused by my modification to ath. But this strange thing can also happen in a head kernel (r255382). Attachment[1] is some useful messages just before it happens. By the way, I use a AR9227 device. And, I found that, for aggregation scenario, ath gathers tx information and update the ratectl states. So, what we can do to net80211 to let it support aggregation? Thanks! Chenchong On Tue, Sep 3, 2013 at 9:29 AM, Chenchong Qin wrote: > OK! > > Thanks! :-) > > Chenchong > > > On Tue, Sep 3, 2013 at 1:56 AM, Adrian Chadd wrote: > >> Hi! >> >> You can declare an mbuf tag and use that. Look at M_TXCB in net80211 and >> how mbuf tags are added. >> >> I've long thought about adding a net80211 mbuf tag to represent -all- of >> the tx related state - TX callback, rate control, rate completion, >> aggregation state, retry count, etc. That way all the drivers can use it. >> >> >> >> -adrian >> >> > --047d7b5dba6866be5904e5e0ca7e Content-Type: application/octet-stream; name="20130908-net80211-ratectl-ath.diff" Content-Disposition: attachment; filename="20130908-net80211-ratectl-ath.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hlcenjjb0 SW5kZXg6IGlmX2F0aC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGlmX2F0aC5jCShyZXZpc2lvbiAyNTQ4MjYp CisrKyBpZl9hdGguYwkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQAogCiAjaW5jbHVk ZSA8bmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oPgogI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIx MV9yZWdkb21haW4uaD4KKworI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9yYXRlY3RsLmg+ CiAjaWZkZWYgSUVFRTgwMjExX1NVUFBPUlRfU1VQRVJHCiAjaW5jbHVkZSA8bmV0ODAyMTEvaWVl ZTgwMjExX3N1cGVyZy5oPgogI2VuZGlmCkBAIC0zMjIsNiArMzI0LDcgQEAKIAlzYy0+c2NfYWgg PSBhaDsKIAlzYy0+c2NfaW52YWxpZCA9IDA7CS8qIHJlYWR5IHRvIGdvLCBlbmFibGUgaW50ZXJy dXB0IGhhbmRsaW5nICovCiAjaWZkZWYJQVRIX0RFQlVHCisJYXRoX2RlYnVnIHw9IEFUSF9ERUJV R19OT0RFOyAKIAlzYy0+c2NfZGVidWcgPSBhdGhfZGVidWc7CiAjZW5kaWYKIApAQCAtMTM4MCw2 ICsxMzgzLDE2IEBACiAJfQogCUFUSF9VTkxPQ0soc2MpOwogCisJdWludDMyX3QgY2FwcyA9IDA7 CisJaWYgKHNjLT5zY19tcnJldHJ5KQorCQljYXBzIHw9IElFRUU4MDIxMV9SQVRFQ1RMX0NBUF9N UlI7CisJaWYgKHNjLT5zY19tcnJwcm90KQorCQljYXBzIHw9IElFRUU4MDIxMV9SQVRFQ1RMX0NB UF9NUlJQUk9UOworCWlmIChzYy0+c2NfdHhjaGFpbm1hc2sgPiAxKQorCQljYXBzIHw9IElFRUU4 MDIxMV9SQVRFQ1RMX0NBUF9NVUxUWENIQUlOOworCisJaWVlZTgwMjExX3JhdGVjdGxfaW5pdCh2 YXAsIGNhcHMpOworCQogCS8qIGNvbXBsZXRlIHNldHVwICovCiAJaWVlZTgwMjExX3ZhcF9hdHRh Y2godmFwLCBhdGhfbWVkaWFfY2hhbmdlLCBpZWVlODAyMTFfbWVkaWFfc3RhdHVzKTsKIAlyZXR1 cm4gdmFwOwpAQCAtMTQxNCw2ICsxNDI3LDcgQEAKIAkJYXRoX3N0b3ByZWN2KHNjLCAxKTsJCS8q IHN0b3AgcmVjdiBzaWRlICovCiAJfQogCisJaWVlZTgwMjExX3JhdGVjdGxfZGVpbml0KHZhcCk7 CiAJaWVlZTgwMjExX3ZhcF9kZXRhY2godmFwKTsKIAogCS8qCkBAIC00MDQyLDYgKzQwNTYsOCBA QAogewogCXN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmkgPSBiZi0+YmZfbm9kZTsKIAlzdHJ1Y3Qg YXRoX25vZGUgKmFuID0gTlVMTDsKKwlzdHJ1Y3QgaWVlZTgwMjExX3JjX2luZm8gKnJjX2luZm8g PSBOVUxMOworCXN0cnVjdCBtX3RhZyAqbXRhZzsKIAogCUFUSF9UWF9VTkxPQ0tfQVNTRVJUKHNj KTsKIAlBVEhfVFhRX1VOTE9DS19BU1NFUlQodHhxKTsKQEAgLTQwNjgsMTAgKzQwODQsMzMgQEAK IAkJCSAqIFhYWCBhc3N1bWUgdGhpcyBpc24ndCBhbiBhZ2dyZWdhdGUKIAkJCSAqIGZyYW1lLgog CQkJICovCisjaWYgMAogCQkJYXRoX3R4X3VwZGF0ZV9yYXRlY3RybChzYywgbmksCiAJCQkgICAg IGJmLT5iZl9zdGF0ZS5iZnNfcmMsIHRzLAogCQkJICAgIGJmLT5iZl9zdGF0ZS5iZnNfcGt0bGVu LCAxLAogCQkJICAgICh0cy0+dHNfc3RhdHVzID09IDAgPyAwIDogMSkpOworI2VuZGlmCisJCQkv KiBuZXQ4MDIxMSByYXRlY3RsICovCisJCSAgICBtdGFnID0gbV90YWdfbG9jYXRlKGJmLT5iZl9t LCBNVEFHX0FCSV9ORVQ4MDIxMSwgCisJCQkJICAgICAgICAgICAgTkVUODAyMTFfVEFHX1JBVEVD VEwsIE5VTEwpOworCQkJaWYgKE5VTEwgPT0gbXRhZykgeworCQkJCUlFRUU4MDIxMV9OT1RFKG5p LT5uaV92YXAsIElFRUU4MDIxMV9NU0dfUkFURUNUTCwgbmksCisJCQkJCQkiJXM6IG5vIHJhdGVj dGwgbWJ1ZiB0YWcgZm91bmQuXG4iLCBfX2Z1bmNfXyk7CisJCQkJc3RydWN0IGllZWU4MDIxMV9y Y19pbmZvIHRtcF9yY19pbmZvOworCQkJCXJjX2luZm8gPSAmdG1wX3JjX2luZm87CisJCQkJYnpl cm8ocmNfaW5mbywgc2l6ZW9mKHJjX2luZm8pKTsKKwkJCX0gZWxzZSB7CisJCQkJSUVFRTgwMjEx X05PVEUobmktPm5pX3ZhcCwgSUVFRTgwMjExX01TR19SQVRFQ1RMLCBuaSwKKwkJCQkJCSIlczog Zm91bmQgcmF0ZWN0bCBtYnVmIHRhZy5cbiIsIF9fZnVuY19fKTsKKwkJCQlyY19pbmZvID0gKHN0 cnVjdCBpZWVlODAyMTFfcmNfaW5mbyopKG10YWcgKyAxKTsKKwkJCX0KKwkKKwkJCWllZWU4MDIx MV9yYXRlY3RsX3JjX2luZm9fc2V0KHJjX2luZm8sCisJCQkJCTEsICh0cy0+dHNfc3RhdHVzID09 IDAgPyAwIDogMSksIAorCQkJCQliZi0+YmZfc3RhdGUuYmZzX3BrdGxlbiwKKwkJCQkJdHMtPnRz X3Nob3J0cmV0cnksIHRzLT50c19sb25ncmV0cnksCisJCQkJCXRzLT50c19maW5hbHRzaSwgdHMt PnRzX3JhdGUpOworCQkJaWVlZTgwMjExX3JhdGVjdGxfdHhfY29tcGxldGUobmktPm5pX3ZhcCwg bmksIHJjX2luZm8pOwogCQl9CiAJCWF0aF90eF9kZWZhdWx0X2NvbXAoc2MsIGJmLCAwKTsKIAl9 IGVsc2UKQEAgLTU1NzQsOSArNTYxMywxNSBAQAogCiAJYW4tPmFuX21jYXN0cml4ID0gYXRoX3R4 X2ZpbmRyaXgoc2MsIHRwLT5tY2FzdHJhdGUpOwogCWFuLT5hbl9tZ210cml4ID0gYXRoX3R4X2Zp bmRyaXgoc2MsIHRwLT5tZ210cmF0ZSk7Ci0KKyNpZiAwCiAJYXRoX3JhdGVfbmV3YXNzb2Moc2Ms IGFuLCBpc25ldyk7CisjZW5kaWYKIAorCURQUklOVEYoc2MsIEFUSF9ERUJVR19OT0RFLCAiJXM6 IG5ld2Fzc29jIGlzIG5ldzogJWRcbiIsCisJCQlfX2Z1bmNfXywgaXNuZXcpOworCWlmIChpc25l dykKKwkJaWVlZTgwMjExX3JhdGVjdGxfbm9kZV9pbml0KG5pKTsKKwogCWlmIChpc25ldyAmJgog CSAgICAodmFwLT5pdl9mbGFncyAmIElFRUU4MDIxMV9GX1BSSVZBQ1kpID09IDAgJiYgc2MtPnNj X2hhc2NscmtleSAmJgogCSAgICBuaS0+bmlfdWNhc3RrZXkud2tfa2V5aXggPT0gSUVFRTgwMjEx X0tFWUlYX05PTkUpCkluZGV4OiBpZl9hdGhfdHguYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpZl9hdGhfdHgu YwkocmV2aXNpb24gMjU0ODI2KQorKysgaWZfYXRoX3R4LmMJKHdvcmtpbmcgY29weSkKQEAgLTcy LDYgKzcyLDggQEAKIAogI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV92YXIuaD4KICNpbmNs dWRlIDxuZXQ4MDIxMS9pZWVlODAyMTFfcmVnZG9tYWluLmg+CisKKyNpbmNsdWRlIDxuZXQ4MDIx MS9pZWVlODAyMTFfcmF0ZWN0bC5oPgogI2lmZGVmIElFRUU4MDIxMV9TVVBQT1JUX1NVUEVSRwog I2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9zdXBlcmcuaD4KICNlbmRpZgpAQCAtMTM4Nyw2 ICsxMzg5LDEwIEBACiBzdGF0aWMgdm9pZAogYXRoX3R4X2RvX3JhdGVsb29rdXAoc3RydWN0IGF0 aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZikKIHsKKwlzdHJ1Y3QgaWVlZTgwMjExX25v ZGUgKm5pID0gYmYtPmJmX25vZGU7CisJc3RydWN0IGllZWU4MDIxMV9yY19pbmZvICpyY19pbmZv ID0gTlVMTDsKKwlzdHJ1Y3QgaWVlZTgwMjExX3JjX3NlcmllcyAqcmMgPSBOVUxMOworCXN0cnVj dCBtX3RhZyAqbXRhZzsKIAl1aW50OF90IHJhdGUsIHJpeDsKIAlpbnQgdHJ5MDsKIApAQCAtMTM5 NSw3ICsxNDAxLDcgQEAKIAogCS8qIEdldCByaWQgb2YgYW55IHByZXZpb3VzIHN0YXRlICovCiAJ Ynplcm8oYmYtPmJmX3N0YXRlLmJmc19yYywgc2l6ZW9mKGJmLT5iZl9zdGF0ZS5iZnNfcmMpKTsK LQorI2lmIDAKIAlBVEhfTk9ERV9MT0NLKEFUSF9OT0RFKGJmLT5iZl9ub2RlKSk7CiAJYXRoX3Jh dGVfZmluZHJhdGUoc2MsIEFUSF9OT0RFKGJmLT5iZl9ub2RlKSwgYmYtPmJmX3N0YXRlLmJmc19z aHByZWFtLAogCSAgICBiZi0+YmZfc3RhdGUuYmZzX3BrdGxlbiwgJnJpeCwgJnRyeTAsICZyYXRl KTsKQEAgLTE0MDksNyArMTQxNSwzOSBAQAogCQlhdGhfcmF0ZV9nZXR4dHhyYXRlcyhzYywgQVRI X05PREUoYmYtPmJmX25vZGUpLCByaXgsCiAJCSAgICBiZi0+YmZfc3RhdGUuYmZzX3JjKTsKIAlB VEhfTk9ERV9VTkxPQ0soQVRIX05PREUoYmYtPmJmX25vZGUpKTsKKyNlbmRpZgogCisJLyogbmV0 ODAyMTEgcmF0ZWN0bCAqLworCW10YWcgPSBtX3RhZ19sb2NhdGUoYmYtPmJmX20sIE1UQUdfQUJJ X05FVDgwMjExLCAKKwkJCU5FVDgwMjExX1RBR19SQVRFQ1RMLCBOVUxMKTsKK2FnYWluOgkKKwlp ZiAoTlVMTCA9PSBtdGFnKSB7CisJCW10YWcgPSBtX3RhZ19hbGxvYyhNVEFHX0FCSV9ORVQ4MDIx MSwgTkVUODAyMTFfVEFHX1JBVEVDVEwsCisJCQkJc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfcmNf aW5mbyksIE1fTk9XQUlUKTsKKwkJaWYgKE5VTEwgPT0gbXRhZykgeworCQkJSUVFRTgwMjExX05P VEUobmktPm5pX3ZhcCwgSUVFRTgwMjExX01TR19SQVRFQ1RMLCBuaSwKKwkJCQkJIiVzOiBjYW4n dCBhbGxvYyBtYnVmIHRhZyBmb3IgcmF0ZWN0bC5cbiIsIF9fZnVuY19fKTsKKwkJCWdvdG8gYWdh aW47CisJCX0KKwl9IGVsc2UKKwkJSUVFRTgwMjExX05PVEUobmktPm5pX3ZhcCwgSUVFRTgwMjEx X01TR19SQVRFQ1RMLCBuaSwKKwkJCQkiJXM6IG5hbmk/IGZpbmQgbWJ1ZiB0YWcgZm9yIHJhdGVj dGwgZGlyZWN0bHkuXG4iLCBfX2Z1bmNfXyk7CisJCisJcmNfaW5mbyA9IChzdHJ1Y3QgaWVlZTgw MjExX3JjX2luZm8qKShtdGFnICsgMSk7CisJcmMgPSByY19pbmZvLT5pcmlfcmM7CisJCisJYnpl cm8ocmNfaW5mbywgc2l6ZW9mKHJjX2luZm8pKTsKKwlpZiAoYmYtPmJmX3N0YXRlLmJmc19zaHBy ZWFtKQorCQlyY19pbmZvLT5pcmlfZmxhZ3MgfD0gSUVFRTgwMjExX1JBVEVDVExfSU5GT19TUDsK KworCWllZWU4MDIxMV9yYXRlY3RsX3JhdGVzKG5pLCByY19pbmZvKTsKKworCW1fdGFnX3ByZXBl bmQoYmYtPmJmX20sIG10YWcpOworCisJcml4ID0gcmNbMF0ucml4OworCXRyeTAgPSByY1swXS50 cmllczsKKwlyYXRlID0gbmktPm5pX3R4cmF0ZTsKKwogCXNjLT5zY190eHJpeCA9IHJpeDsJLyog Zm9yIExFRCBibGlua2luZyAqLwogCXNjLT5zY19sYXN0ZGF0YXJpeCA9IHJpeDsJLyogZm9yIGZh c3QgZnJhbWVzICovCiAJYmYtPmJmX3N0YXRlLmJmc190cnkwID0gdHJ5MDsKQEAgLTQwNTgsNiAr NDA5Niw4IEBACiAJaW50IHRpZCA9IGJmLT5iZl9zdGF0ZS5iZnNfdGlkOwogCXN0cnVjdCBhdGhf dGlkICphdGlkID0gJmFuLT5hbl90aWRbdGlkXTsKIAlzdHJ1Y3QgYXRoX3R4X3N0YXR1cyAqdHMg PSAmYmYtPmJmX3N0YXR1cy5kc190eHN0YXQ7CisJc3RydWN0IGllZWU4MDIxMV9yY19pbmZvICpy Y19pbmZvID0gTlVMTDsKKwlzdHJ1Y3QgbV90YWcgKm10YWc7CiAKIAkvKiBUaGUgVElEIHN0YXRl IGlzIHByb3RlY3RlZCBiZWhpbmQgdGhlIFRYUSBsb2NrICovCiAJQVRIX1RYX0xPQ0soc2MpOwpA QCAtNDEwOCw5ICs0MTQ4LDM1IEBACiAJICogZHVyaW5nIGEgaHcgcXVldWUgZHJhaW4gYW5kIHRo ZSBmcmFtZSB3YW50ZWQgYW4gQUNLLgogCSAqLwogCWlmIChmYWlsID09IDAgJiYgKChiZi0+YmZf c3RhdGUuYmZzX3R4ZmxhZ3MgJiBIQUxfVFhERVNDX05PQUNLKSA9PSAwKSkKKwl7CisjaWYgMAog CQlhdGhfdHhfdXBkYXRlX3JhdGVjdHJsKHNjLCBuaSwgYmYtPmJmX3N0YXRlLmJmc19yYywKIAkJ ICAgIHRzLCBiZi0+YmZfc3RhdGUuYmZzX3BrdGxlbiwKIAkJICAgIDEsICh0cy0+dHNfc3RhdHVz ID09IDApID8gMCA6IDEpOworI2VuZGlmCisJCisJCS8qIG5ldDgwMjExIHJhdGVjdGwgKi8KKwkg ICAgbXRhZyA9IG1fdGFnX2xvY2F0ZShiZi0+YmZfbSwgTVRBR19BQklfTkVUODAyMTEsIAorCQkJ ICAgICAgICAgICAgTkVUODAyMTFfVEFHX1JBVEVDVEwsIE5VTEwpOworCQlpZiAoTlVMTCA9PSBt dGFnKSB7CisJCQlJRUVFODAyMTFfTk9URShuaS0+bmlfdmFwLCBJRUVFODAyMTFfTVNHX1JBVEVD VEwsIG5pLAorCQkJCQkiJXM6IG5vIHJhdGVjdGwgbWJ1ZiB0YWcgZm91bmQuXG4iLCBfX2Z1bmNf Xyk7CisJCQlzdHJ1Y3QgaWVlZTgwMjExX3JjX2luZm8gdG1wX3JjX2luZm87CisJCQlyY19pbmZv ID0gJnRtcF9yY19pbmZvOworCQkJYnplcm8ocmNfaW5mbywgc2l6ZW9mKHJjX2luZm8pKTsKKwkJ fSBlbHNlIHsKKwkJCUlFRUU4MDIxMV9OT1RFKG5pLT5uaV92YXAsIElFRUU4MDIxMV9NU0dfUkFU RUNUTCwgbmksCisJCQkJCSIlczogZm91bmQgcmF0ZWN0bCBtYnVmIHRhZy5cbiIsIF9fZnVuY19f KTsKKwkJCXJjX2luZm8gPSAoc3RydWN0IGllZWU4MDIxMV9yY19pbmZvKikobXRhZyArIDEpOwor CQl9CisJCQorCQlpZWVlODAyMTFfcmF0ZWN0bF9yY19pbmZvX3NldChyY19pbmZvLAorCQkJCTEs ICh0cy0+dHNfc3RhdHVzID09IDAgPyAwIDogMSksIAorCQkJCWJmLT5iZl9zdGF0ZS5iZnNfcGt0 bGVuLAorCQkJCXRzLT50c19zaG9ydHJldHJ5LCB0cy0+dHNfbG9uZ3JldHJ5LAorCQkJCXRzLT50 c19maW5hbHRzaSwgdHMtPnRzX3JhdGUpOworCQlpZWVlODAyMTFfcmF0ZWN0bF90eF9jb21wbGV0 ZShuaS0+bmlfdmFwLCBuaSwgcmNfaW5mbyk7CisJfQogCiAJYXRoX3R4X2RlZmF1bHRfY29tcChz YywgYmYsIGZhaWwpOwogfQpAQCAtNDQ3NSw2ICs0NTQxLDkgQEAKIAlpbnQgZHJvcHMgPSAwOwog CXN0cnVjdCBpZWVlODAyMTFfdHhfYW1wZHUgKnRhcDsKIAlhdGhfYnVmaGVhZCBiZl9jcTsKKwlz dHJ1Y3QgYXRoX3R4X3N0YXR1cyB0cyA9IGJmX2ZpcnN0LT5iZl9zdGF0dXMuZHNfdHhzdGF0Owor CXN0cnVjdCBpZWVlODAyMTFfcmNfaW5mbyAqcmNfaW5mbyA9IE5VTEw7CisJc3RydWN0IG1fdGFn ICptdGFnOwogCiAJVEFJTFFfSU5JVCgmYmZfcSk7CiAJVEFJTFFfSU5JVCgmYmZfY3EpOwpAQCAt NDQ4NSwxMSArNDU1NCwzNSBAQAogCSAqIFhYWCB1c2UgdGhlIGxlbmd0aCBpbiB0aGUgZmlyc3Qg ZnJhbWUgaW4gdGhlIHNlcmllczsKIAkgKiBYWFgganVzdCBzbyB0aGluZ3MgYXJlIGNvbnNpc3Rl bnQgZm9yIG5vdy4KIAkgKi8KKyNpZiAwCiAJYXRoX3R4X3VwZGF0ZV9yYXRlY3RybChzYywgbmks IGJmX2ZpcnN0LT5iZl9zdGF0ZS5iZnNfcmMsCiAJICAgICZiZl9maXJzdC0+YmZfc3RhdHVzLmRz X3R4c3RhdCwKIAkgICAgYmZfZmlyc3QtPmJmX3N0YXRlLmJmc19wa3RsZW4sCiAJICAgIGJmX2Zp cnN0LT5iZl9zdGF0ZS5iZnNfbmZyYW1lcywgYmZfZmlyc3QtPmJmX3N0YXRlLmJmc19uZnJhbWVz KTsKKyNlbmRpZgorCS8qIG5ldDgwMjExIHJhdGVjdGwgKi8KKwltdGFnID0gbV90YWdfbG9jYXRl KGJmX2ZpcnN0LT5iZl9tLCBNVEFHX0FCSV9ORVQ4MDIxMSwgCisJCQlORVQ4MDIxMV9UQUdfUkFU RUNUTCwgTlVMTCk7CisJaWYgKE5VTEwgPT0gbXRhZykgeworCQlJRUVFODAyMTFfTk9URShuaS0+ bmlfdmFwLCBJRUVFODAyMTFfTVNHX1JBVEVDVEwsIG5pLAorCQkJCSIlczogbm8gcmF0ZWN0bCBt YnVmIHRhZyBmb3VuZC5cbiIsIF9fZnVuY19fKTsKKwkJc3RydWN0IGllZWU4MDIxMV9yY19pbmZv IHRtcF9yY19pbmZvOworCQlyY19pbmZvID0gJnRtcF9yY19pbmZvOworCQliemVybyhyY19pbmZv LCBzaXplb2YocmNfaW5mbykpOworCX0gZWxzZSB7CisJCUlFRUU4MDIxMV9OT1RFKG5pLT5uaV92 YXAsIElFRUU4MDIxMV9NU0dfUkFURUNUTCwgbmksCisJCQkJIiVzOiBmb3VuZCByYXRlY3RsIG1i dWYgdGFnLlxuIiwgX19mdW5jX18pOworCQlyY19pbmZvID0gKHN0cnVjdCBpZWVlODAyMTFfcmNf aW5mbyopKG10YWcgKyAxKTsKKwl9CiAKKwlpZWVlODAyMTFfcmF0ZWN0bF9yY19pbmZvX3NldChy Y19pbmZvLAorCQkJYmZfZmlyc3QtPmJmX3N0YXRlLmJmc19uZnJhbWVzLCAKKwkJCWJmX2ZpcnN0 LT5iZl9zdGF0ZS5iZnNfbmZyYW1lcywKKwkJCWJmX2ZpcnN0LT5iZl9zdGF0ZS5iZnNfcGt0bGVu LAorCQkJdHMudHNfc2hvcnRyZXRyeSwgdHMudHNfbG9uZ3JldHJ5LAorCQkJdHMudHNfZmluYWx0 c2ksIHRzLnRzX3JhdGUpOworCWllZWU4MDIxMV9yYXRlY3RsX3R4X2NvbXBsZXRlKG5pLT5uaV92 YXAsIG5pLCByY19pbmZvKTsKKwogCUFUSF9UWF9MT0NLKHNjKTsKIAl0YXAgPSBhdGhfdHhfZ2V0 X3R4X3RpZChhbiwgdGlkLT50aWQpOwogCXNjLT5zY19zdGF0cy5hc3RfdHhfYWdncl9mYWlsYWxs Kys7CkBAIC00NjI2LDggKzQ3MTksMTIgQEAKIAlpbnQgbmZyYW1lcyA9IDAsIG5iYWQgPSAwLCBu ZjsKIAlpbnQgcGt0bGVuOwogCS8qIFhYWCB0aGVyZSdzIHRvbyBtdWNoIG9uIHRoZSBzdGFjaz8g Ki8KKyNpZiAwCiAJc3RydWN0IGF0aF9yY19zZXJpZXMgcmNbQVRIX1JDX05VTV07CisjZW5kaWYK IAlpbnQgdHhzZXE7CisJc3RydWN0IGllZWU4MDIxMV9yY19pbmZvICpyY19pbmZvID0gTlVMTDsK KwlzdHJ1Y3QgbV90YWcgKm10YWc7CiAKIAlEUFJJTlRGKHNjLCBBVEhfREVCVUdfU1dfVFhfQUdH UiwgIiVzOiBjYWxsZWQ7IGh3cV9kZXB0aD0lZFxuIiwKIAkgICAgX19mdW5jX18sIGF0aWQtPmh3 cV9kZXB0aCk7CkBAIC00NzQ4LDcgKzQ4NDUsNyBAQAogCWlzYWdnciA9IGJmX2ZpcnN0LT5iZl9z dGF0ZS5iZnNfYWdncjsKIAliYVswXSA9IHRzLnRzX2JhX2xvdzsKIAliYVsxXSA9IHRzLnRzX2Jh X2hpZ2g7Ci0KKyNpZiAwCiAJLyoKIAkgKiBDb3B5IHRoZSBUWCBjb21wbGV0aW9uIHN0YXR1cyBh bmQgdGhlIHJhdGUgY29udHJvbAogCSAqIHNlcmllcyBmcm9tIHRoZSBmaXJzdCBkZXNjcmlwdG9y LCBhcyBpdCBtYXkgYmUgZnJlZWQKQEAgLTQ3NTYsNiArNDg1MywxMyBAQAogCSAqIGludG8gdGhp bmdzLgogCSAqLwogCW1lbWNweShyYywgYmZfZmlyc3QtPmJmX3N0YXRlLmJmc19yYywgc2l6ZW9m KHJjKSk7CisjZW5kaWYKKwkvKiAKKwkgKiBHZXQgdGhlIG5ldDgwMjExIHJhdGVjdGwgbXRhZyBo ZXJlLCBhcyBiZl9maXJzdCB3aWxsIAorCSAqIGJlIHNldCB0byBOVUxMIGxhdGVyLiAKKwkgKi8K KwltdGFnID0gbV90YWdfbG9jYXRlKGJmX2ZpcnN0LT5iZl9tLCBNVEFHX0FCSV9ORVQ4MDIxMSwg CisJCQlORVQ4MDIxMV9UQUdfUkFURUNUTCwgTlVMTCk7CiAKIAlEUFJJTlRGKHNjLCBBVEhfREVC VUdfU1dfVFhfQUdHUiwKIAkgICAgIiVzOiB0eGFfc3RhcnQ9JWQsIHR4X29rPSVkLCBzdGF0dXM9 JS44eCwgZmxhZ3M9JS44eCwgIgpAQCAtNDg3Myw5ICs0OTc3LDMxIEBACiAJICogY29udHJvbCBj b2RlLgogCSAqLwogCWlmIChmYWlsID09IDApCisJeworI2lmIDAJCiAJCWF0aF90eF91cGRhdGVf cmF0ZWN0cmwoc2MsIG5pLCByYywgJnRzLCBwa3RsZW4sIG5mcmFtZXMsCiAJCSAgICBuYmFkKTsK KyNlbmRpZgorCQkvKiBuZXQ4MDIxMSByYXRlY3RsICovCisJCWlmIChOVUxMID09IG10YWcpIHsK KwkJCUlFRUU4MDIxMV9OT1RFKG5pLT5uaV92YXAsIElFRUU4MDIxMV9NU0dfUkFURUNUTCwgbmks CisJCQkJCSIlczogbm8gcmF0ZWN0bCBtYnVmIHRhZyBmb3VuZC5cbiIsIF9fZnVuY19fKTsKKwkJ CXN0cnVjdCBpZWVlODAyMTFfcmNfaW5mbyB0bXBfcmNfaW5mbzsKKwkJCXJjX2luZm8gPSAmdG1w X3JjX2luZm87CisJCQliemVybyhyY19pbmZvLCBzaXplb2YocmNfaW5mbykpOworCQl9IGVsc2Ug eworCQkJSUVFRTgwMjExX05PVEUobmktPm5pX3ZhcCwgSUVFRTgwMjExX01TR19SQVRFQ1RMLCBu aSwKKwkJCQkJIiVzOiBmb3VuZCByYXRlY3RsIG1idWYgdGFnLlxuIiwgX19mdW5jX18pOworCQkJ cmNfaW5mbyA9IChzdHJ1Y3QgaWVlZTgwMjExX3JjX2luZm8qKShtdGFnICsgMSk7CisJCX0KIAor CQlpZWVlODAyMTFfcmF0ZWN0bF9yY19pbmZvX3NldChyY19pbmZvLAorCQkJCQluZnJhbWVzLCBu YmFkLCBwa3RsZW4sCisJCQkJCXRzLnRzX3Nob3J0cmV0cnksIHRzLnRzX2xvbmdyZXRyeSwKKwkJ CQkJdHMudHNfZmluYWx0c2ksIHRzLnRzX3JhdGUpOworCQlpZWVlODAyMTFfcmF0ZWN0bF90eF9j b21wbGV0ZShuaS0+bmlfdmFwLCBuaSwgcmNfaW5mbyk7CisJfQorCiAJLyoKIAkgKiBzZW5kIGJh ciBpZiB3ZSBkcm9wcGVkIGFueSBmcmFtZXMKIAkgKi8KQEAgLTQ5NDgsNiArNTA3NCw4IEBACiAJ c3RydWN0IGF0aF90aWQgKmF0aWQgPSAmYW4tPmFuX3RpZFt0aWRdOwogCXN0cnVjdCBhdGhfdHhf c3RhdHVzIHRzOwogCWludCBkcm9wcyA9IDA7CisJc3RydWN0IGllZWU4MDIxMV9yY19pbmZvICpy Y19pbmZvID0gTlVMTDsKKwlzdHJ1Y3QgbV90YWcgKm10YWc7CiAKIAkvKgogCSAqIFRha2UgYSBj b3B5IG9mIHRoaXM7IGZpbHRlcmluZy9jbG9uaW5nIHRoZSBmcmFtZSBtYXkgZnJlZSB0aGUKQEAg LTQ5NjIsMTEgKzUwOTAsMzUgQEAKIAkgKiBEbyBpdCBvdXRzaWRlIG9mIHRoZSBUWFEgbG9jay4K IAkgKi8KIAlpZiAoZmFpbCA9PSAwICYmICgoYmYtPmJmX3N0YXRlLmJmc190eGZsYWdzICYgSEFM X1RYREVTQ19OT0FDSykgPT0gMCkpCisJeworI2lmIDAJCiAJCWF0aF90eF91cGRhdGVfcmF0ZWN0 cmwoc2MsIG5pLCBiZi0+YmZfc3RhdGUuYmZzX3JjLAogCQkgICAgJmJmLT5iZl9zdGF0dXMuZHNf dHhzdGF0LAogCQkgICAgYmYtPmJmX3N0YXRlLmJmc19wa3RsZW4sCiAJCSAgICAxLCAodHMudHNf c3RhdHVzID09IDApID8gMCA6IDEpOworI2VuZGlmCisJCW10YWcgPSBtX3RhZ19sb2NhdGUoYmYt PmJmX20sIE1UQUdfQUJJX05FVDgwMjExLCAKKwkJCQlORVQ4MDIxMV9UQUdfUkFURUNUTCwgTlVM TCk7CisJCQorCQlpZiAoTlVMTCA9PSBtdGFnKSB7CisJCQlJRUVFODAyMTFfTk9URShuaS0+bmlf dmFwLCBJRUVFODAyMTFfTVNHX1JBVEVDVEwsIG5pLAorCQkJCQkiJXM6IG5vIHJhdGVjdGwgbWJ1 ZiB0YWcgZm91bmQuXG4iLCBfX2Z1bmNfXyk7CisJCQlzdHJ1Y3QgaWVlZTgwMjExX3JjX2luZm8g dG1wX3JjX2luZm87CisJCQlyY19pbmZvID0gJnRtcF9yY19pbmZvOworCQkJYnplcm8ocmNfaW5m bywgc2l6ZW9mKHJjX2luZm8pKTsKKwkJfSBlbHNlIHsKKwkJCUlFRUU4MDIxMV9OT1RFKG5pLT5u aV92YXAsIElFRUU4MDIxMV9NU0dfUkFURUNUTCwgbmksCisJCQkJCSIlczogZm91bmQgcmF0ZWN0 bCBtYnVmIHRhZy5cbiIsIF9fZnVuY19fKTsKKwkJCXJjX2luZm8gPSAoc3RydWN0IGllZWU4MDIx MV9yY19pbmZvKikobXRhZyArIDEpOworCQl9CiAKKwkJaWVlZTgwMjExX3JhdGVjdGxfcmNfaW5m b19zZXQocmNfaW5mbywKKwkJCQkxLCAodHMudHNfc3RhdHVzID09IDAgPyAwIDogMSksIAorCQkJ CWJmLT5iZl9zdGF0ZS5iZnNfcGt0bGVuLAorCQkJCXRzLnRzX3Nob3J0cmV0cnksIHRzLnRzX2xv bmdyZXRyeSwKKwkJCQl0cy50c19maW5hbHRzaSwgdHMudHNfcmF0ZSk7CisJCWllZWU4MDIxMV9y YXRlY3RsX3R4X2NvbXBsZXRlKG5pLT5uaV92YXAsIG5pLCByY19pbmZvKTsKKwl9CiAJLyoKIAkg KiBUaGlzIGlzIGNhbGxlZCBlYXJseSBzbyBhdGlkLT5od3FfZGVwdGggY2FuIGJlIHRyYWNrZWQu CiAJICogVGhpcyB1bmZvcnR1bmF0ZWx5IG1lYW5zIHRoYXQgaXQncyByZWxlYXNlZCBhbmQgcmVn cmFiYmVkCkluZGV4OiBpZl9hdGhfdHhfaHQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpZl9hdGhfdHhfaHQu YwkocmV2aXNpb24gMjU0ODI2KQorKysgaWZfYXRoX3R4X2h0LmMJKHdvcmtpbmcgY29weSkKQEAg LTY0LDYgKzY0LDggQEAKIAogI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV92YXIuaD4KICNp bmNsdWRlIDxuZXQ4MDIxMS9pZWVlODAyMTFfcmVnZG9tYWluLmg+CisKKyNpbmNsdWRlIDxuZXQ4 MDIxMS9pZWVlODAyMTFfcmF0ZWN0bC5oPgogI2lmZGVmIElFRUU4MDIxMV9TVVBQT1JUX1NVUEVS RwogI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9zdXBlcmcuaD4KICNlbmRpZgpAQCAtMjIx LDEzICsyMjMsNDcgQEAKIHZvaWQKIGF0aF90eF9yYXRlX2ZpbGxfcmNmbGFncyhzdHJ1Y3QgYXRo X3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmKQogewotCXN0cnVjdCBpZWVlODAyMTFfbm9k ZSAqbmkgPSBiZi0+YmZfbm9kZTsKLQlzdHJ1Y3QgaWVlZTgwMjExY29tICppYyA9IG5pLT5uaV9p YzsKKwkvLyBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pID0gYmYtPmJmX25vZGU7CisJLy8gc3Ry dWN0IGllZWU4MDIxMWNvbSAqaWMgPSBuaS0+bmlfaWM7CiAJY29uc3QgSEFMX1JBVEVfVEFCTEUg KnJ0ID0gc2MtPnNjX2N1cnJhdGVzOwotCXN0cnVjdCBhdGhfcmNfc2VyaWVzICpyYyA9IGJmLT5i Zl9zdGF0ZS5iZnNfcmM7CisJc3RydWN0IGF0aF9yY19zZXJpZXMgKmF0aF9yYyA9IGJmLT5iZl9z dGF0ZS5iZnNfcmM7CisJc3RydWN0IGllZWU4MDIxMV9yY19pbmZvICpyY19pbmZvID0gTlVMTDsK KwlzdHJ1Y3QgaWVlZTgwMjExX3JjX3NlcmllcyAqcmMgPSBOVUxMOworCXN0cnVjdCBtX3RhZyAq bXRhZzsKIAl1aW50OF90IHJhdGU7CiAJaW50IGk7CiAKKwltdGFnID0gbV90YWdfbG9jYXRlKGJm LT5iZl9tLCBNVEFHX0FCSV9ORVQ4MDIxMSwgCisJCQlORVQ4MDIxMV9UQUdfUkFURUNUTCwgTlVM TCk7CisJaWYgKE5VTEwgPT0gbXRhZykKKwkJcmV0dXJuOworCisJcmNfaW5mbyA9IChzdHJ1Y3Qg aWVlZTgwMjExX3JjX2luZm8qKShtdGFnICsgMSk7CisJcmMgPSByY19pbmZvLT5pcmlfcmM7CisK Kwlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX1JBVEVDVExfTlVNOyBpKyspIHsKKwkJaWYgKHJj W2ldLnRyaWVzID09IDApCisJCQljb250aW51ZTsKKworCQlyYXRlID0gcnQtPmluZm9bcmNbaV0u cml4XS5yYXRlQ29kZTsKKwkJaWYgKHJjW2ldLmZsYWdzICYgSUVFRTgwMjExX1JBVEVDVExfRkxB R19TUCkKKwkJCXJhdGUgfD0gcnQtPmluZm9bcmNbaV0ucml4XS5zaG9ydFByZWFtYmxlOworCisJ CXJjW2ldLnJhdGVjb2RlID0gcmF0ZTsKKworCQlhdGhfcmNbaV0ucml4ID0gcmNbaV0ucml4Owor CQlhdGhfcmNbaV0udHJpZXMgPSByY1tpXS50cmllczsKKwkJYXRoX3JjW2ldLmZsYWdzID0gcmNb aV0uZmxhZ3M7CisJCWF0aF9yY1tpXS5yYXRlY29kZSA9IHJjW2ldLnJhdGVjb2RlOworCQlhdGhf cmNbaV0udHhfcG93ZXJfY2FwID0gcmNbaV0udHhfcG93ZXJfY2FwOworCQlhdGhfcmNbaV0ubWF4 NG1zZnJhbWVsZW4gPSByY1tpXS5tYXg0bXNmcmFtZWxlbjsKKwkJCisJCURQUklOVEYoc2MsIEFU SF9ERUJVR19TV19UWF9BR0dSLAorCQkgICAgIiVzOiBpPSVkLCByYXRlPTB4JXgsIGZsYWdzPTB4 JXgsIG1heDRtcz0lZFxuIiwKKwkJICAgIF9fZnVuY19fLCBpLCByYXRlLCByY1tpXS5mbGFncywg cmNbaV0ubWF4NG1zZnJhbWVsZW4pOworCX0KKworI2lmIDAKIAlmb3IgKGkgPSAwOyBpIDwgQVRI X1JDX05VTTsgaSsrKSB7CiAJCXJjW2ldLmZsYWdzID0gMDsKIAkJaWYgKHJjW2ldLnRyaWVzID09 IDApCkBAIC0zMjUsNiArMzYxLDcgQEAKIAkJICAgICIlczogaT0lZCwgcmF0ZT0weCV4LCBmbGFn cz0weCV4LCBtYXg0bXM9JWRcbiIsCiAJCSAgICBfX2Z1bmNfXywgaSwgcmF0ZSwgcmNbaV0uZmxh Z3MsIHJjW2ldLm1heDRtc2ZyYW1lbGVuKTsKIAl9CisjZW5kaWYKIH0KIAogLyoK --047d7b5dba6866be5904e5e0ca7e Content-Type: application/octet-stream; name="freezing.log" Content-Disposition: attachment; filename="freezing.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hlcenmmm1 CnFpbmNoZW5jaG9uZ0BmcmVlYnNkOi9ob21lL3FpbmNoZW5jaG9uZyAlCnFpbmNoZW5jaG9uZ0Bm cmVlYnNkOi9ob21lL3FpbmNoZW5jaG9uZyAlIHN2biBpbmZvIC91c3Ivc3JjLwpQYXRoOiAvdXNy L3NyYwpXb3JraW5nIENvcHkgUm9vdCBQYXRoOiAvdXNyL3NyYwpVUkw6IGh0dHA6Ly9zdm4uZnJl ZWJzZC5vcmcvYmFzZS9oZWFkClJlcG9zaXRvcnkgUm9vdDogaHR0cDovL3N2bi5mcmVlYnNkLm9y Zy9iYXNlClJlcG9zaXRvcnkgVVVJRDogY2NmOWY4NzItYWEyZS1kZDExLTlmYzgtMDAxYzIzZDBi YzFmClJldmlzaW9uOiAyNTUzODIKTm9kZSBLaW5kOiBkaXJlY3RvcnkKU2NoZWR1bGU6IG5vcm1h bApMYXN0IENoYW5nZWQgQXV0aG9yOiBtYXJrbQpMYXN0IENoYW5nZWQgUmV2OiAyNTUzNzkKTGFz dCBDaGFuZ2VkIERhdGU6IDIwMTMtMDktMDggMDY6MDc6MzYgKzA4MDAgKFN1biwgMDggU2VwIDIw MTMpCnFpbmNoZW5jaG9uZ0BmcmVlYnNkOi9ob21lL3FpbmNoZW5jaG9uZyAlCnFpbmNoZW5jaG9u Z0BmcmVlYnNkOi9ob21lL3FpbmNoZW5jaG9uZyAlIHVuYW1lIC1hCkZyZWVCU0QgZnJlZWJzZC5x Y2MubG9jYWwgMTAuMC1DVVJSRU5UIEZyZWVCU0QgMTAuMC1DVVJSRU5UICMyIHIyNTUzODI6IFN1 biBTZXAgIDggMTE6NTk6MzcgQ1NUIDIwMTMgICAgIHJvb3RAZnJlZWJzZC5xY2MubG9jYWw6L3Vz ci9vYmovdXNyL3NyYy9zeXMvTVlLRVJORUwgIGFtZDY0CnFpbmNoZW5jaG9uZ0BmcmVlYnNkOi9o b21lL3FpbmNoZW5jaG9uZyAlCnFpbmNoZW5jaG9uZ0BmcmVlYnNkOi9ob21lL3FpbmNoZW5jaG9u ZyAlIHN1ZG8gaWZjb25maWcgd2xhbjAgY3JlYXRlIHdsYW5kZXYgYXRoMApxaW5jaGVuY2hvbmdA ZnJlZWJzZDovaG9tZS9xaW5jaGVuY2hvbmcgJSBzdWRvIHNlcnZpY2UgbmV0aWYgc3RhcnQKaWZj b25maWc6IGNyZWF0ZTogYmFkIHZhbHVlClN0YXJ0aW5nIE5ldHdvcms6IGxvMCBlbTAgcmUwIGF0 aDAgd2xhbjAuCmxvMDogZmxhZ3M9ODA0OTxVUCxMT09QQkFDSyxSVU5OSU5HLE1VTFRJQ0FTVD4g bWV0cmljIDAgbXR1IDE2Mzg0CiAgICAgb3B0aW9ucz02MDAwMDM8UlhDU1VNLFRYQ1NVTSxSWENT VU1fSVBWNixUWENTVU1fSVBWNj4KICAgICBpbmV0NiA6OjEgcHJlZml4bGVuIDEyOAogICAgIGlu ZXQ2IGZlODA6OjElbG8wIHByZWZpeGxlbiA2NCBzY29wZWlkIDB4NAogICAgIGluZXQgMTI3LjAu MC4xIG5ldG1hc2sgMHhmZjAwMDAwMAogICAgIG5kNiBvcHRpb25zPTIxPFBFUkZPUk1OVUQsQVVU T19MSU5LTE9DQUw+CmVtMDogZmxhZ3M9OGMwMjxCUk9BRENBU1QsT0FDVElWRSxTSU1QTEVYLE1V TFRJQ0FTVD4gbWV0cmljIDAgbXR1IDE1MDAKICAgICBvcHRpb25zPTQyMTliPFJYQ1NVTSxUWENT VU0sVkxBTl9NVFUsVkxBTl9IV1RBR0dJTkcsVkxBTl9IV0NTVU0sVFNPNCxXT0xfTUFHSUMsVkxB Tl9IV1RTTz4KICAgICBldGhlciA0NDozNzplNjo2MDpjYzpmYgogICAgIG5kNiBvcHRpb25zPTI5 PFBFUkZPUk1OVUQsSUZESVNBQkxFRCxBVVRPX0xJTktMT0NBTD4KICAgICBtZWRpYTogRXRoZXJu ZXQgYXV0b3NlbGVjdAogICAgIHN0YXR1czogbm8gY2FycmllcgpyZTA6IGZsYWdzPTg4NDM8VVAs QlJPQURDQVNULFJVTk5JTkcsU0lNUExFWCxNVUxUSUNBU1Q+IG1ldHJpYyAwIG10dSAxNTAwCiAg ICAgb3B0aW9ucz04MjA5YjxSWENTVU0sVFhDU1VNLFZMQU5fTVRVLFZMQU5fSFdUQUdHSU5HLFZM QU5fSFdDU1VNLFdPTF9NQUdJQyxMSU5LU1RBVEU+CiAgICAgZXRoZXIgMTQ6Y2Y6OTI6ZWQ6YjI6 ZmIKICAgICBpbmV0NiBmZTgwOjoxNmNmOjkyZmY6ZmVlZDpiMmZiJXJlMCBwcmVmaXhsZW4gNjQg c2NvcGVpZCAweDIKICAgICBpbmV0NiAyMDAxOmNjMDoyMDI2OmUwMDoxNmNmOjkyZmY6ZmVlZDpi MmZiIHByZWZpeGxlbiA2NCBhdXRvY29uZgogICAgIGluZXQgMTAuMjEuNS4yNDIgbmV0bWFzayAw eGZmZmYwMDAwIGJyb2FkY2FzdCAxMC4yMS4yNTUuMjU1CiAgICAgbmQ2IG9wdGlvbnM9MjM8UEVS Rk9STU5VRCxBQ0NFUFRfUlRBRFYsQVVUT19MSU5LTE9DQUw+CiAgICAgbWVkaWE6IEV0aGVybmV0 IGF1dG9zZWxlY3QgKDEwMGJhc2VUWCA8ZnVsbC1kdXBsZXg+KQogICAgIHN0YXR1czogYWN0aXZl CmF0aDA6IGZsYWdzPTg4NDM8VVAsQlJPQURDQVNULFJVTk5JTkcsU0lNUExFWCxNVUxUSUNBU1Q+ IG1ldHJpYyAwIG10dSAyMjkwCiAgICAgZXRoZXIgMTQ6Y2Y6OTI6ZDU6NzY6ZGYKICAgICBuZDYg b3B0aW9ucz0yOTxQRVJGT1JNTlVELElGRElTQUJMRUQsQVVUT19MSU5LTE9DQUw+CiAgICAgbWVk aWE6IElFRUUgODAyLjExIFdpcmVsZXNzIEV0aGVybmV0IGF1dG9zZWxlY3QgbW9kZSAxMWcKICAg ICBzdGF0dXM6IGFzc29jaWF0ZWQKd2xhbjA6IGZsYWdzPTg4NDM8VVAsQlJPQURDQVNULFJVTk5J TkcsU0lNUExFWCxNVUxUSUNBU1Q+IG1ldHJpYyAwIG10dSAxNTAwCiAgICAgZXRoZXIgMTQ6Y2Y6 OTI6ZDU6NzY6ZGYKICAgICBpbmV0IDEwLjEyMi4wLjExNSBuZXRtYXNrIDB4ZmZmZmZjMDAgYnJv YWRjYXN0IDEwLjEyMi4zLjI1NQogICAgIG5kNiBvcHRpb25zPTI5PFBFUkZPUk1OVUQsSUZESVNB QkxFRCxBVVRPX0xJTktMT0NBTD4KICAgICBtZWRpYTogSUVFRSA4MDIuMTEgV2lyZWxlc3MgRXRo ZXJuZXQgYXV0b3NlbGVjdCAoYXV0b3NlbGVjdCkKICAgICBzdGF0dXM6IG5vIGNhcnJpZXIKICAg ICBzc2lkIElDVF9XYXZlTEFOIGNoYW5uZWwgMTEgKDI0NjIgTUh6IDExZykKICAgICByZWdkb21h aW4gMzI5MjQgY291bnRyeSBDTiBpbmRvb3IgZWNtIGF1dGhtb2RlIE9QRU4gcHJpdmFjeSBPRkYK ICAgICB0eHBvd2VyIDIwIGJtaXNzIDcgc2NhbnZhbGlkIDYwIHByb3Rtb2RlIENUUyB3bWUgYnVy c3QgYmludHZhbCAyMDAKcWluY2hlbmNob25nQGZyZWVic2Q6L2hvbWUvcWluY2hlbmNob25nICUg CgoqKiBUaGVuIGl0IGZyZWV6ZXMuIDotKAo= --047d7b5dba6866be5904e5e0ca7e--