From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 1A59740604 for ; Fri, 25 Feb 2022 23:42:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B9D6A68A6CD; Sat, 26 Feb 2022 01:42:46 +0200 (EET) Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AD8B3689F4D for ; Sat, 26 Feb 2022 01:42:39 +0200 (EET) Received: by mail-il1-f179.google.com with SMTP id w4so5551044ilj.5 for ; Fri, 25 Feb 2022 15:42:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=gFP9XuCcUAg8Yf4ogFLDK4vN/RE3fd/soSIhOd/9zpw=; b=CDsa/1Pss+aGPN7kWqUIrcBbh7SFrP/2eN0RUE4q/DPhvoawP91vs6Sh6eAK4ITBbx KfKYNXw4GCKv+qFcdfWDwPcQ9DwGO87l77oEt9t0oqaBvPn7QVwSfF59FFNBIYo61u8r mu+LOlNhKRcXYqTse4ojbkxuQRCStEiXun2SdyPW9iNUiijkeJP/KYPsCr/7DopYP/k7 4rHq8YxBuqS12UD+U9UECi45opYczbvnInASS+mZpuTAJulQT8/Ln0N2IhGzzZpZ1K4f rhjeFDjAkbOVUcB7q3PoiSA28bMbEwKA/2ZhnBqAWCLjFCx0JZlUR/gnRrGEIDp068BD nfiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=gFP9XuCcUAg8Yf4ogFLDK4vN/RE3fd/soSIhOd/9zpw=; b=P96DIBWwv8pQGj3idPPT7+uhICFKaM0Ndb/0QvdpiiJ1RqjU4n+pqD3vptbCEwsaCw HJj31B7AO6aULu4lSTFzAeuV2RXL8S8CjlHhYOREx9ugAsALDtGxkZhvYCFl6BCz2uk4 AjdfmcjJT/o6gXrYTngpTTOahelvnEk3JNKUyK80kayqerqyAZNhjaViSEHxhlON5xlU mAoTnu7wPwInFXbI91s8eTwCamIgEEzfg2e1j8A+weaV3I8ADoDbucYMj8VezMsTKBpf JtjFGQbMWLKlMlVAadOVrqjPipY8dDt8gs3X0ODLv4c5atp8Ggvu8hmzGCQuxCclH47R Eb/g== X-Gm-Message-State: AOAM533guF2KD9qfs650+42uaEzfien0pKIzkeSO5zwKpqu/M0dVCNj8 SGNSZBeNJ/hVY/ziJ8bkd2K8z0nmajIYrQ== X-Google-Smtp-Source: ABdhPJzKqQoApsJiwxPiF9VoGC4Jh6jQ/w5WmX9IotUNHzt43wrp3VhofwmQ69W1UGyS3t8uazyh6g== X-Received: by 2002:a92:cc04:0:b0:2c2:9771:378a with SMTP id s4-20020a92cc04000000b002c29771378amr8211618ilp.63.1645832557165; Fri, 25 Feb 2022 15:42:37 -0800 (PST) Received: from [192.168.7.86] (c-68-40-205-18.hsd1.mi.comcast.net. [68.40.205.18]) by smtp.gmail.com with ESMTPSA id d3-20020a6b4f03000000b005ed3d7d7de4sm2175437iob.23.2022.02.25.15.42.36 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Feb 2022 15:42:36 -0800 (PST) Message-ID: Date: Fri, 25 Feb 2022 18:42:35 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <43daccc7-c618-993e-912d-54e633e8c7f2@gmail.com> From: Jack Bruienne In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH] libavcodec, libavformat: Added DFPWM1a codec and raw format X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: VGhhbmtzIGZvciBsb29raW5nIG92ZXIgdGhlIHBhdGNoLiBJIHVzZWQgZ2l0IGZvcm1hdC1wYXRj aCB0byBtYWtlIHRoZSAKZW1haWwgYW5kIHRoZW4gc2VudCBpdCB3aXRoIFRodW5kZXJiaXJkOyBp dCBhcHBlYXJzIHRoYXQgdGhlIGNvbW1hbmQgb24gCnRoZSB3ZWJzaXRlIGRvZXNuJ3QgcHV0IHRo ZSBwYXRjaCBpbiBhbiBhdHRhY2htZW50LiBJJ2xsIGJlIGFkZGluZyAKLS1hdHRhY2ggZm9yIGZ1 dHVyZSBwYXRjaGVzIHRvIGZpeCB0aGlzLgoKSSB3aWxsIGJlIHNlbmRpbmcgc3BsaXQgdXBkYXRl ZCBwYXRjaGVzIGZpeGluZyB0aGUgaXNzdWVzIHlvdSBtZW50aW9uZWQgCnByb21wdGx5LgoKT24g Mi8yNS8yMiAwMzoxNSwgUGF1bCBCIE1haG9sIHdyb3RlOgoKPiBPbiBGcmksIEZlYiAyNSwgMjAy MiBhdCAwMjo1NDozNUFNIC0wNTAwLCBKYWNrIEJydWllbm5lIHdyb3RlOgo+PiAgRnJvbSB0aGUg d2lraSBwYWdlIChodHRwczovL3dpa2kudmV4YXRvcy5jb20vZGZwd20pOgo+Pj4gREZQV00gKER5 bmFtaWMgRmlsdGVyIFB1bHNlIFdpZHRoIE1vZHVsYXRpb24pIGlzIGFuIGF1ZGlvIGNvZGVjCj4+ PiBjcmVhdGVkIGJ5IEJlbiDigJxHcmVhc2VNb25rZXnigJ0gUnVzc2VsbCBpbiAyMDEyLCBvcmln aW5hbGx5IHRvIGJlIHVzZWQKPj4+IGFzIGEgdm9pY2UgY29kZWMgZm9yIGFzaWVraWVya2EncyBw aXhtZXNzLCBhIEMgcmVtYWtlIG9mIDY0cGl4ZWxzLgo+Pj4gSXQgaXMgYSAxLWJpdC1wZXItc2Ft cGxlIGNvZGVjIHdoaWNoIHVzZXMgYSBkeW5hbWljLXN0cmVuZ3RoIG9uZS1wb2xlCj4+PiBsb3ct cGFzcyBmaWx0ZXIgYXMgYSBwcmVkaWN0b3IuIER1ZSB0byB0aGUgZmFjdCB0aGF0IGEgcmF3IERQ RldNIGRlY29kaW5nCj4+PiBjcmVhdGVzIGEgaGlnaC1waXRjaGVkIHdoaW5lLCBpdCBpcyBvZnRl biBmb2xsb3dlZCBieSBzb21lIHBvc3QtcHJvY2Vzc2luZwo+Pj4gZmlsdGVycyB0byBtYWtlIHRo ZSBzdHJlYW0gbW9yZSBsaXN0ZW5hYmxlLgo+PiBJdCBoYXMgcmVjZW50bHkgZ2FpbmVkIHBvcHVs YXJpdHkgdGhyb3VnaCB0aGUgQ29tcHV0ZXJDcmFmdCBtb2QgZm9yCj4+IE1pbmVjcmFmdCwgd2hp Y2ggYWRkZWQgc3VwcG9ydCBmb3IgYXVkaW8gdGhyb3VnaCB0aGlzIGNvZGVjLCBhcyB3ZWxsIGFz Cj4+IHRoZSBDb21wdXRyb25pY3MgZXhwYW5zaW9uIHdoaWNoIHByZWNlZWRlZCB0aGUgb2ZmaWNp YWwgc3VwcG9ydC4gVGhlc2UKPj4gYm90aCBpbXBsZW1lbnQgdGhlIHNsaWdodGx5IGFkanVzdGVk IDFhIHZlcnNpb24gb2YgdGhlIGNvZGVjLCB3aGljaCBpcwo+PiB0aGUgdmVyc2lvbiBJIGhhdmUg Y2hvc2VuIGZvciB0aGlzIHBhdGNoLgo+Pgo+PiBUaGlzIHBhdGNoIGFkZHMgYm90aCBhIG5ldyBj b2RlYyAod2l0aCBlbmNvZGluZyBhbmQgZGVjb2RpbmcpLCBhcyB3ZWxsIGFzCj4+IGEgcmF3IGF1 ZGlvIGZvcm1hdCB0byBiZSBhYmxlIHRvIHJlYWQvd3JpdGUgdGhlIHJhdyBmaWxlcyB0aGF0IGFy ZSBtb3N0Cj4+IGNvbW1vbmx5IHVzZWQgKGFzIG5vIG90aGVyIGNvbnRhaW5lciBmb3JtYXQgc3Vw cG9ydHMgaXQgeWV0KS4KPj4KPj4gVGhlIGNvZGVjIHNvdXJjZXMgYXJlIHByZXR0eSBzaW1wbGU6 IHRoZXkgdXNlIHRoZSByZWZlcmVuY2UgY29kZWMgd2l0aAo+PiBhIGJhc2ljIHdyYXBwZXIgdG8g Y29ubmVjdCBpdCB0byB0aGUgRkZtcGVnIEFWQ29kZWMgc3lzdGVtLiBUaGVyZSdzIGEKPj4gYml0 IG9mIGV4dHJhIGNvZGUgdG8gY29udmVydCBmcm9tIHVuc2lnbmVkIHRvIHNpZ25lZCA4LWJpdCBh dWRpbywgYXMgdGhlCj4+IGNvZGVjIGltcGxlbWVudGF0aW9uIG9wZXJhdGVzIG9uIHNpZ25lZCBk YXRhLCB3aGljaCBGRm1wZWcgZG9lc24ndCBzdXBwb3J0Lgo+Pgo+PiBUaGUgbXV4ZXJzIGFyZSBt b3N0bHkgY29waWVkIGZyb20gdGhlIFBDTSBkZW11eGVyIGFuZCB0aGUgcmF3IG11eGVycywgYXMK Pj4gREZQV00gaXMgdHlwaWNhbGx5IHN0b3JlZCBhcyByYXcgZGF0YS4KPj4KPj4gVGhpcyBwYXRj aCB3aWxsIGJlIGhpZ2hseSB1c2VmdWwgdG8gQ29tcHV0ZXJDcmFmdCBkZXZlbG9wZXJzIHdobyBh cmUKPj4gd29ya2luZyB3aXRoIGF1ZGlvLCBhcyBpdCBpcyB0aGUgc3RhbmRhcmQgZm9ybWF0IGZv ciBhdWRpbywgYW5kIHRoZXJlCj4+IGFyZSBmZXcgdXNlci1mcmllbmRseSBlbmNvZGVycyBvdXQg dGhlcmUuIEl0IHdpbGwgc3RyZWFtbGluZSB0aGUgcHJvY2Vzcwo+PiBmb3IgaW1wb3J0aW5nIGF1 ZGlvLCByZXBsYWNpbmcgdGhlIG5lZWQgdG8gd3JpdGUgY29kZSBvciB1c2UgdG9vbHMgdGhhdAo+ PiByZXF1aXJlIHZlcnkgc3BlY2lmaWMgaW5wdXQgZm9ybWF0cy4KPj4KPj4gWW91IG1heSB1c2Ug dGhlIENyYWZ0T1MtUEMgcHJvZ3JhbSAoaHR0cHM6Ly93d3cuY3JhZnRvcy1wYy5jYykgdG8gdGVz dAo+PiBvdXQgREZQV00gcGxheWJhY2suIFRvIHVzZSBpdCwgcnVuIHRoZSBwcm9ncmFtIGFuZCB0 eXBlIHRoaXMgY29tbWFuZDoKPj4gImF0dGFjaCBsZWZ0IHNwZWFrZXIiIFRoZW4gcnVuICJzcGVh a2VyIHBsYXkgPGZpbGUuZGZwd20+IiBmb3IgZWFjaCBmaWxlLgo+PiBUaGUgYXBwIHJ1bnMgaW4g YSBzYW5kYm94LCBzbyBmaWxlcyBoYXZlIHRvIGJlIHRyYW5zZmVycmVkIGluIGZpcnN0Owo+PiB0 aGUgZWFzaWVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byBzaW1wbHkgZHJhZyB0aGUgZmlsZSBvbiB0 aGUgd2luZG93Lgo+PiAoT3IgY29weSBmaWxlcyB0byB0aGUgZm9sZGVyIGF0IGh0dHBzOi8vd3d3 LmNyYWZ0b3MtcGMuY2MvZG9jcy9zYXZlcy4pCj4+Cj4+IFNhbXBsZSBERlBXTSBmaWxlcyBjYW4g YmUgZ2VuZXJhdGVkIHdpdGggYW4gb25saW5lIHRvb2wgYXQKPj4gaHR0cHM6Ly9tdXNpYy5tYWRl Zm9yLmNjLiBUaGlzIGlzIHRoZSBjdXJyZW50IGJlc3Qgd2F5IHRvIGVuY29kZSBERlBXTQo+PiBm aWxlcy4gU2ltcGx5IGRyYWcgYW4gYXVkaW8gZmlsZSBvbnRvIHRoZSBwYWdlLCBhbmQgaXQgd2ls bCBlbmNvZGUgaXQsCj4+IGdpdmluZyBhIGRvd25sb2FkIGxpbmsgb24gdGhlIHBhZ2UuCj4+Cj4+ IEkndmUgbWFkZSBzdXJlIHRvIHVwZGF0ZSBhbGwgb2YgdGhlIGRvY3MgYXMgcGVyIERldmVsb3Bl csKnNywgYW5kIEkndmUKPj4gdGVzdGVkIGl0IGFzIHBlciBzZWN0aW9uIDguIFRlc3QgZmlsZXMg ZW5jb2RlZCB0byBERlBXTSBwbGF5IGNvcnJlY3RseQo+PiBpbiBDb21wdXRlckNyYWZ0LCBhbmQg b3RoZXIgZmlsZXMgdGhhdCB3b3JrIGluIENDIGFyZSBjb3JyZWN0bHkgZGVjb2RlZC4KPj4gSSBo YXZlIGFsc28gdmVyaWZpZWQgdGhhdCBjb3JydXB0IGZpbGVzIGRvIG5vdCBjcmFzaCB0aGUgZGVj b2RlciAtIHRoaXMKPj4gc2hvdWxkIHRoZW9yZXRpY2FsbHkgbm90IGJlIGFuIGlzc3VlIGFzIHRo ZSByZXN1bHQgc2l6ZSBpcyBjb25zdGFudCB3aXRoCj4+IHJlc3BlY3QgdG8gdGhlIGlucHV0IHNp emUuCj4+Cj4+IE9uZSB0aGluZyBJIG5vdGljZWQgaXMgdGhhdCB0aGlzIHNhbXBsZSBmaWxlIGZh aWxzIHRvIGRlY29kZSB0byByYXc6Cj4+IGh0dHBzOi8vc2FtcGxlcy5mZm1wZWcub3JnL29nZy92 aXJnaW5yYWRpby10aHJlZS1jb25zZWN1dGl2ZS1jaGFpbnMub2dnCj4+IEl0IHJlcG9ydHMgIkFw cGxpY2F0aW9uIHByb3ZpZGVkIGludmFsaWQsIG5vbiBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcK Pj4gZHRzIHRvIG11eGVyIGluIHN0cmVhbSAwIiwgd2hpY2ggYXBwZWFycyB0byBiZSBiZWNhdXNl IHRoZSBpbml0aWFsCj4+IHRpbWVzdGFtcCBpcyBub3QgMDowMC4gVGhpcyBhZmZlY3RzIGFsbCBy YXcgbXV4ZXJzLCBpbmNsdWRpbmcgUENNLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBKYWNrIEJydWll bm5lIDxqYWNrYnJ1aWVubmVAZ21haWwuY29tPgo+PiAtLS0KPj4gICBDaGFuZ2Vsb2cgICAgICAg ICAgICAgICAgIHwgICAxICsKPj4gICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgIHwgICAyICsK Pj4gICBkb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpIHwgICAyICsKPj4gICBsaWJhdmNvZGVjL01h a2VmaWxlICAgICAgIHwgICAyICsKPj4gICBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jICAgIHwgICAy ICsKPj4gICBsaWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyAgIHwgICA3ICsrCj4+ICAgbGliYXZjb2Rl Yy9jb2RlY19pZC5oICAgICB8ICAgMSArCj4+ICAgbGliYXZjb2RlYy9kZnB3bWRlYy5jICAgICB8 IDEzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgbGliYXZjb2Rl Yy9kZnB3bWVuYy5jICAgICB8IDE0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+PiAgIGxpYmF2Y29kZWMvdXRpbHMuYyAgICAgICAgfCAgIDIgKwo+PiAgIGxpYmF2Y29k ZWMvdmVyc2lvbi5oICAgICAgfCAgIDIgKy0KPj4gICBsaWJhdmZvcm1hdC9NYWtlZmlsZSAgICAg IHwgICAyICsKPj4gICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgIHwgICAyICsKPj4gICBsaWJh dmZvcm1hdC9kZnB3bWRlYy5jICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4+ICAgbGliYXZmb3JtYXQvcmF3ZW5jLmMgICAgICB8ICAxMyArKysrCj4+ICAgbGliYXZmb3Jt YXQvdmVyc2lvbi5oICAgICB8ICAgNCArLQo+PiAgIDE2IGZpbGVzIGNoYW5nZWQsIDQyNCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNv ZGVjL2RmcHdtZGVjLmMKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9kZnB3bWVu Yy5jCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9ybWF0L2RmcHdtZGVjLmMKPj4KPj4g ZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+PiBpbmRleCA1YWQyY2VmLi5lYzY4 OGRhIDEwMDY0NAo+PiAtLS0gYS9DaGFuZ2Vsb2cKPj4gKysrIGIvQ2hhbmdlbG9nCj4+IEBAIC00 LDYgKzQsNyBAQCByZWxlYXNlcyBhcmUgc29ydGVkIGZyb20geW91bmdlc3QgdG8gb2xkZXN0Lgo+ PiAgIHZlcnNpb24gNS4xOgo+PiAgIC0gZGlhbG9ndWUgZW5oYW5jZSBhdWRpbyBmaWx0ZXIKPj4g ICAtIGRyb3BwZWQgb2Jzb2xldGUgWHZNQyBod2FjY2VsCj4+ICstIERGUFdNIGF1ZGlvIGVuY29k ZXIvZGVjb2RlciBhbmQgcmF3IG11eGVyL2RlbXV4ZXIKPgo+IEtlZXAgZW1wdHkgbGluZSBoZXJl IGFib3ZlIGFuZCBldmVyeXdoZXJlIGVsc2UgeW91IGhhZCByZW1vdmVkIHRoZW0uCj4gSXMgcGF0 Y2ggY29ycnVwdGVkIHNvbWVob3c/IEp1c3QgYXR0YWNoIGZpbGUuCj4gQW5kIHNwbGl0IGRlbXV4 ZXIgYW5kIG11eGVyIGFkZGl0aW9uIGZyb20gZGVjb2RlciBhbmQgZW5jb2Rlci4KPgo+PiAgICAg dmVyc2lvbiA1LjA6Cj4+IGRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCj4+ IGluZGV4IGYzM2NjYmQuLjkzMWNmNGIgMTAwNjQ0Cj4+IC0tLSBhL01BSU5UQUlORVJTCj4+ICsr KyBiL01BSU5UQUlORVJTCj4+IEBAIC0xNjEsNiArMTYxLDcgQEAgQ29kZWNzOgo+PiAgICAgY3Nj ZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWltYXIgRG9lZmZpbmdlcgo+PiAg ICAgY3V2aWRkZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1vIFJvdGhlbnBpZWxl cgo+PiAgICAgZGNhKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb284Ngo+PiAr ICBkZnB3bSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEphY2sgQnJ1aWVubmUKPj4g ICAgIGRpcmFjKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zdGlzbGF2IFBlaGxp dmFub3YKPj4gICAgIGRueGhkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFwdGlz dGUgQ291ZHVyaWVyCj4+ICAgICBkb2xieV9lKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvbzg2Cj4+IEBAIC00MTUsNiArNDE2LDcgQEAgTXV4ZXJzL0RlbXV4ZXJzOgo+PiAgICAgZGFz aGRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGV2ZW4gTGl1Cj4+ICAgICBkYXNo ZW5jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEthcnRoaWNrIEpleWFwYWwKPj4gICAg IGRhdWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVpbWFyIERvZWZmaW5nZXIK Pj4gKyAgZGZwd21kZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICBKYWNrIEJydWllbm5l Cj4+ICAgICBkc3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZWtzaWogUmVt cGVsCj4+ICAgICBkdHNkZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbzg2Cj4+ ICAgICBkdHNoZGRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhdWwgQiBNYWhvbAo+ PiBkaWZmIC0tZ2l0IGEvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSBiL2RvYy9nZW5lcmFsX2Nv bnRlbnRzLnRleGkKPj4gaW5kZXggZGYxNjkyYy4uZmNkOWRhMSAxMDA2NDQKPj4gLS0tIGEvZG9j L2dlbmVyYWxfY29udGVudHMudGV4aQo+PiArKysgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhp Cj4+IEBAIC01NzgsNiArNTc4LDcgQEAgbGlicmFyeToKPj4gICBAaXRlbSByYXcgYXB0WCAgICAg ICAgICAgICAgICAgIEB0YWIgWCBAdGFiIFgKPj4gICBAaXRlbSByYXcgYXB0WCBIRCAgICAgICAg ICAgICAgIEB0YWIgWCBAdGFiIFgKPj4gICBAaXRlbSByYXcgQ2hpbmVzZSBBVlMgdmlkZW8gICAg IEB0YWIgWCBAdGFiIFgKPj4gK0BpdGVtIHJhdyBERlBXTSAgICAgICAgICAgICAgICAgQHRhYiBY IEB0YWIgWAo+PiAgIEBpdGVtIHJhdyBEaXJhYyAgICAgICAgICAgICAgICAgQHRhYiBYIEB0YWIg WAo+PiAgIEBpdGVtIHJhdyBETnhIRCAgICAgICAgICAgICAgICAgQHRhYiBYIEB0YWIgWAo+PiAg IEBpdGVtIHJhdyBEVFMgICAgICAgICAgICAgICAgICAgQHRhYiBYIEB0YWIgWAo+PiBAQCAtMTE5 NCw2ICsxMTk1LDcgQEAgZm9sbG93aW5nIGltYWdlIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDoKPj4g ICBAaXRlbSBDUkkgSENBICAgICAgICAgICAgICAgIEB0YWIgICAgIEB0YWIgWAo+PiAgIEBpdGVt IERlbHBoaW5lIFNvZnR3YXJlIEludGVybmF0aW9uYWwgQ0lOIGF1ZGlvICBAdGFiICAgICBAdGFi ICBYCj4+ICAgICAgIEB0YWIgQ29kZWMgdXNlZCBpbiBEZWxwaGluZSBTb2Z0d2FyZSBJbnRlcm5h dGlvbmFsIGdhbWVzLgo+PiArQGl0ZW0gREZQV00gICAgICAgICAgICAgICAgICBAdGFiICBYICBA dGFiICBYCj4+ICAgQGl0ZW0gRGlnaXRhbCBTcGVlY2ggU3RhbmRhcmQgLSBTdGFuZGFyZCBQbGF5 IG1vZGUgKERTUyBTUCkgQHRhYiBAdGFiICBYCj4+ICAgQGl0ZW0gRGlzY3dvcmxkIElJIEJNViBB dWRpbyBAdGFiICAgICBAdGFiICBYCj4+ICAgQGl0ZW0gQ09PSyAgICAgICAgICAgICAgICAgICBA dGFiICAgICBAdGFiICBYCj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL01ha2VmaWxlIGIvbGli YXZjb2RlYy9NYWtlZmlsZQo+PiBpbmRleCA2MDc2YjRhLi43NDc0MjIwIDEwMDY0NAo+PiAtLS0g YS9saWJhdmNvZGVjL01ha2VmaWxlCj4+ICsrKyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKPj4gQEAg LTI4OSw2ICsyODksOCBAQCBPQkpTLSQoQ09ORklHX0RFUkZfRFBDTV9ERUNPREVSKSAgICAgICAr PSBkcGNtLm8KPj4gICBPQkpTLSQoQ09ORklHX0RJUkFDX0RFQ09ERVIpICAgICAgICAgICArPSBk aXJhY2RlYy5vIGRpcmFjLm8gZGlyYWNkc3Aubwo+PiBkaXJhY3RhYi5vIFwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJhY19hcml0aC5vIGRpcmFjX2R3 dC5vCj4+IGRpcmFjX3ZsYy5vCj4+ICAgT0JKUy0kKENPTkZJR19ERkFfREVDT0RFUikgICAgICAg ICAgICAgKz0gZGZhLm8KPj4gK09CSlMtJChDT05GSUdfREZQV01fREVDT0RFUikgICAgICAgICAg ICs9IGRmcHdtZGVjLm8KPj4gK09CSlMtJChDT05GSUdfREZQV01fRU5DT0RFUikgICAgICAgICAg ICs9IGRmcHdtZW5jLm8KPj4gICBPQkpTLSQoQ09ORklHX0ROWEhEX0RFQ09ERVIpICAgICAgICAg ICArPSBkbnhoZGRlYy5vIGRueGhkZGF0YS5vCj4+ICAgT0JKUy0kKENPTkZJR19ETlhIRF9FTkNP REVSKSAgICAgICAgICAgKz0gZG54aGRlbmMubyBkbnhoZGRhdGEubwo+PiAgIE9CSlMtJChDT05G SUdfRE9MQllfRV9ERUNPREVSKSAgICAgICAgICs9IGRvbGJ5X2UubyBkb2xieV9lX3BhcnNlLm8K Pj4ga2Jkd2luLm8KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJh dmNvZGVjL2FsbGNvZGVjcy5jCj4+IGluZGV4IGQxZTEwMTkuLmMzYTBjMjYgMTAwNjQ0Cj4+IC0t LSBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPj4gKysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3Mu Ywo+PiBAQCAtNDM3LDYgKzQzNyw4IEBAIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2Jtdl9hdWRp b19kZWNvZGVyOwo+PiAgIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2Nvb2tfZGVjb2RlcjsKPj4g ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kY2FfZW5jb2RlcjsKPj4gICBleHRlcm4gY29uc3Qg QVZDb2RlYyBmZl9kY2FfZGVjb2RlcjsKPj4gK2V4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RmcHdt X2VuY29kZXI7Cj4+ICtleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kZnB3bV9kZWNvZGVyOwo+PiAg IGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RvbGJ5X2VfZGVjb2RlcjsKPj4gICBleHRlcm4gY29u c3QgQVZDb2RlYyBmZl9kc2RfbHNiZl9kZWNvZGVyOwo+PiAgIGV4dGVybiBjb25zdCBBVkNvZGVj IGZmX2RzZF9tc2JmX2RlY29kZXI7Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2Rl c2MuYyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCj4+IGluZGV4IDcyNWM2ODcuLjg3Y2E1OTEg MTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCj4+ICsrKyBiL2xpYmF2Y29k ZWMvY29kZWNfZGVzYy5jCj4+IEBAIC0zMjM3LDYgKzMyMzcsMTMgQEAgc3RhdGljIGNvbnN0IEFW Q29kZWNEZXNjcmlwdG9yIGNvZGVjX2Rlc2NyaXB0b3JzW10gPQo+PiB7Cj4+ICAgICAgICAgICAu bG9uZ19uYW1lID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIk1TTiBTaXJlbiIpLAo+PiAgICAgICAg ICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BST1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1Bf TE9TU1ksCj4+ICAgICAgIH0sCj4+ICsgICAgewo+PiArICAgICAgICAuaWQgICAgICAgID0gQVZf Q09ERUNfSURfREZQV00sCj4+ICsgICAgICAgIC50eXBlICAgICAgPSBBVk1FRElBX1RZUEVfQVVE SU8sCj4+ICsgICAgICAgIC5uYW1lICAgICAgPSAiZGZwd20iLAo+PiArICAgICAgICAubG9uZ19u YW1lID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkRGUFdNMWEgYXVkaW8iKSwKPiBZb3UgY291bGQg dXNlIGZ1bGwgZGVzY3JpcHRpb24gaGVyZSBpbnN0ZWFkIG9mIGp1c3QgREZQV00xYS4KPgo+Cj4+ ICsgICAgICAgIC5wcm9wcyAgICAgPSBBVl9DT0RFQ19QUk9QX0xPU1NZLAo+PiArICAgIH0sCj4+ ICAgICAgICAvKiBzdWJ0aXRsZSBjb2RlY3MgKi8KPj4gICAgICAgewo+PiBkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9jb2RlY19pZC5oIGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCj4+IGluZGV4IGFi MjY1ZWMuLjNmZmI5YmQgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMvY29kZWNfaWQuaAo+PiAr KysgYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKPj4gQEAgLTUxNiw2ICs1MTYsNyBAQCBlbnVtIEFW Q29kZWNJRCB7Cj4+ICAgICAgIEFWX0NPREVDX0lEX0hDQSwKPj4gICAgICAgQVZfQ09ERUNfSURf RkFTVEFVRElPLAo+PiAgICAgICBBVl9DT0RFQ19JRF9NU05TSVJFTiwKPj4gKyAgICBBVl9DT0RF Q19JRF9ERlBXTSwKPiBLZWVwIGVtcHR5IGxpbmUgaGVyZS4KPgo+PiAgICAgICAgLyogc3VidGl0 bGUgY29kZWNzICovCj4+ICAgICAgIEFWX0NPREVDX0lEX0ZJUlNUX1NVQlRJVExFID0gMHgxNzAw MCwgICAgICAgICAgLy8vPCBBIGR1bW15IElEIHBvaW50aW5nCj4+IGF0IHRoZSBzdGFydCBvZiBz dWJ0aXRsZSBjb2RlY3MuCj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2RmcHdtZGVjLmMgYi9s aWJhdmNvZGVjL2RmcHdtZGVjLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAw MDAwMC4uOWYxMjg0MQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2Y29kZWMvZGZwd21k ZWMuYwo+PiBAQCAtMCwwICsxLDEzOCBAQAo+PiArLyoKPj4gKyAqIERGUFdNIGRlY29kZXIKPj4g KyAqIENvcHlyaWdodCAoYykgMjAyMiBKYWNrIEJydWllbm5lCj4+ICsgKiBDb3B5cmlnaHQgKGMp IDIwMTIsIDIwMTYgQmVuICJHcmVhc2VNb25rZXkiIFJ1c3NlbGwKPj4gKyAqCj4+ICsgKiBUaGlz IGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+PiArICogbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy Cj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KPj4gKyAqCj4+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQo+PiArICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KPj4gKyAqCj4+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVn OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4+ICsgKiBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEKPj4gVVNBCj4+ICsgKi8KPj4gKwo+PiArLyoqCj4+ICsgKiBAZmlsZQo+PiArICogREZQV00x YSBkZWNvZGVyCj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5o Igo+PiArI2luY2x1ZGUgImF2Y29kZWMuaCIKPj4gKyNpbmNsdWRlICJjb2RlY19pZC5oIgo+PiAr I2luY2x1ZGUgImludGVybmFsLmgiCj4+ICsKPj4gK3R5cGVkZWYgc3RydWN0IHsKPj4gKyAgICBp bnQgZnEsIHEsIHMsIGx0Owo+PiArfSBERlBXTVN0YXRlOwo+PiArCj4+ICsvLyBERlBXTSBjb2Rl YyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9DaGVuVGhyZWFkL2RmcHdtL2Jsb2IvbWFzdGVyLzFh Lwo+PiArLy8gTGljZW5zZWQgaW4gdGhlIHB1YmxpYyBkb21haW4KPj4gKwo+PiArI2lmbmRlZiBD T05TVF9QUkVDCj4+ICsjZGVmaW5lIENPTlNUX1BSRUMgMTAKPj4gKyNlbmRpZgo+PiArCj4+ICtz dGF0aWMgdm9pZCBhdV9kZWNvbXByZXNzKERGUFdNU3RhdGUgKnN0YXRlLCBpbnQgZnMsIGludCBs ZW4sIGludDhfdAo+PiAqb3V0YnVmLCB1aW50OF90ICppbmJ1ZikKPj4gK3sKPj4gKyAgICBpbnQg aSwgajsKPj4gKyAgICB1aW50OF90IGQ7Cj4+ICsgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsr KSB7Cj4+ICsgICAgICAgIC8vIGdldCBiaXRzCj4+ICsgICAgICAgIGQgPSAqKGluYnVmKyspOwo+ PiArICAgICAgICBmb3IgKGogPSAwOyBqIDwgODsgaisrKSB7Cj4+ICsgICAgICAgICAgICBpbnQg bnEsIGxxLCBzdCwgbnMsIG92Owo+PiArICAgICAgICAgICAgLy8gc2V0IHRhcmdldAo+PiArICAg ICAgICAgICAgaW50IHQgPSAoKGQmMSkgPyAxMjcgOiAtMTI4KTsKPj4gKyAgICAgICAgICAgIGQg Pj49IDE7Cj4+ICsKPj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBjaGFyZ2UKPj4gKyAgICAgICAg ICAgIG5xID0gc3RhdGUtPnEgKyAoKHN0YXRlLT5zICogKHQtc3RhdGUtPnEpICsKPj4gKDE8PChD T05TVF9QUkVDLTEpKSk+PkNPTlNUX1BSRUMpOwo+PiArICAgICAgICAgICAgaWYobnEgPT0gc3Rh dGUtPnEgJiYgbnEgIT0gdCkKPj4gKyAgICAgICAgICAgICAgICBzdGF0ZS0+cSArPSAodCA9PSAx MjcgPyAxIDogLTEpOwo+PiArICAgICAgICAgICAgbHEgPSBzdGF0ZS0+cTsKPj4gKyAgICAgICAg ICAgIHN0YXRlLT5xID0gbnE7Cj4+ICsKPj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBzdHJlbmd0 aAo+PiArICAgICAgICAgICAgc3QgPSAodCAhPSBzdGF0ZS0+bHQgPyAwIDogKDE8PENPTlNUX1BS RUMpLTEpOwo+PiArICAgICAgICAgICAgbnMgPSBzdGF0ZS0+czsKPj4gKyAgICAgICAgICAgIGlm KG5zICE9IHN0KQo+PiArICAgICAgICAgICAgICAgIG5zICs9IChzdCAhPSAwID8gMSA6IC0xKTsK Pj4gKyNpZiBDT05TVF9QUkVDID4gOAo+PiArICAgICAgICAgICAgaWYobnMgPCAxKygxPDwoQ09O U1RfUFJFQy04KSkpIG5zID0gMSsoMTw8KENPTlNUX1BSRUMtOCkpOwo+PiArI2VuZGlmCj4+ICsg ICAgICAgICAgICBzdGF0ZS0+cyA9IG5zOwo+PiArCj4+ICsgICAgICAgICAgICAvLyBGSUxURVI6 IHBlcmZvcm0gYW50aWplcmsKPj4gKyAgICAgICAgICAgIG92ID0gKHQgIT0gc3RhdGUtPmx0ID8g KG5xK2xxKT4+MSA6IG5xKTsKPj4gKwo+PiArICAgICAgICAgICAgLy8gRklMVEVSOiBwZXJmb3Jt IExQRgo+PiArICAgICAgICAgICAgc3RhdGUtPmZxICs9ICgoZnMqKG92LXN0YXRlLT5mcSkgKyAw eDgwKT4+OCk7Cj4+ICsgICAgICAgICAgICBvdiA9IHN0YXRlLT5mcTsKPj4gKwo+PiArICAgICAg ICAgICAgLy8gb3V0cHV0IHNhbXBsZQo+PiArICAgICAgICAgICAgKihvdXRidWYrKykgPSBvdjsK Pj4gKwo+PiArICAgICAgICAgICAgc3RhdGUtPmx0ID0gdDsKPj4gKyAgICAgICAgfQo+PiArICAg IH0KPj4gK30KPj4gKwo+PiArc3RhdGljIGF2X2NvbGQgaW50IGRmcHdtX2RlY19pbml0KHN0cnVj dCBBVkNvZGVjQ29udGV4dCAqY3R4KQo+PiArewo+PiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0g Y3R4LT5wcml2X2RhdGE7Cj4+ICsKPj4gKyAgICBzdGF0ZS0+ZnEgPSAwOwo+PiArICAgIHN0YXRl LT5xID0gMDsKPj4gKyAgICBzdGF0ZS0+cyA9IDA7Cj4+ICsgICAgc3RhdGUtPmx0ID0gLTEyODsK Pj4gKwo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgYXZfY29sZCBpbnQg ZGZwd21fZGVjX2VuZChzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0eCkKPj4gK3sKPj4gKyAgICBy ZXR1cm4gMDsKPj4gK30KPiBSZW1vdmUgaWYgbm90IGdvbm5hIGJlIHVzZWQgYW5kIGlzIGVtcHR5 Lgo+Cj4+ICsKPj4gK3N0YXRpYyBpbnQgZGZwd21fZGVjX2ZyYW1lKHN0cnVjdCBBVkNvZGVjQ29u dGV4dCAqY3R4LCB2b2lkICpkYXRhLAo+PiArICAgIGludCAqZ290X2ZyYW1lLCBzdHJ1Y3QgQVZQ YWNrZXQgKnBhY2tldCkKPj4gK3sKPj4gKyAgICBERlBXTVN0YXRlICpzdGF0ZSA9IGN0eC0+cHJp dl9kYXRhOwo+PiArICAgIEFWRnJhbWUgKmZyYW1lID0gZGF0YTsKPj4gKwo+PiArICAgIGZyYW1l LT5mb3JtYXQgPSBBVl9TQU1QTEVfRk1UX1U4Owo+PiArICAgIGZyYW1lLT5uYl9zYW1wbGVzID0g cGFja2V0LT5zaXplICogODsKPj4gKyAgICBmcmFtZS0+Y2hhbm5lbF9sYXlvdXQgPSBBVl9DSF9M QVlPVVRfTU9OTzsKPj4gKwo+PiArICAgIGF2X2ZyYW1lX2dldF9idWZmZXIoZnJhbWUsIDApOwo+ IFVzZSBmZl9nZXRfYnVmZmVyKCkKPgo+IFNlZSBob3cgbGliYXZjb2RlYy9wY20uYyBjb2RlY3Mg aGFuZGxlcyB0aGF0Lgo+Cj4+ICsKPj4gKyAgICBhdV9kZWNvbXByZXNzKHN0YXRlLCAxMDAsIHBh Y2tldC0+c2l6ZSwgZnJhbWUtPmRhdGFbMF0sIHBhY2tldC0+ZGF0YSk7Cj4+ICsKPj4gKyAgICAv LyBjb252ZXJ0IGZyb20gc2lnbmVkIHRvIHVuc2lnbmVkIDgtYml0LCBhcyBERlBXTSBvdXRwdXRz IFM4IGJ1dAo+PiBGRm1wZWcgbmVlZHMgVTgKPj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHBh Y2tldC0+c2l6ZSAqIDg7IGkrKykgZnJhbWUtPmRhdGFbMF1baV0gPQo+PiAoKGludDhfdCopZnJh bWUtPmRhdGFbMF0pW2ldICsgMTI4Owo+IENhbnQgeW91IHJlbW92ZSB0aGlzIHdyYXBwZXIsIGZv ciBzdWNoIHRyaXZpYWwgY29kZSBpcyBub3QgaGVscGluZyBoZXJlLgo+IFRoYW4geW91IGNhbiBk byBjb252ZXJzaW9uIGZyb20gUzggdG8gVTggb24gdGhlIGZseSB3aXRob3V0IG5lZWQgZm9yIGV4 dHJhIGJ1ZmZlci4KPgo+PiArCj4+ICsgICAgaWYgKGdvdF9mcmFtZSkgKmdvdF9mcmFtZSA9IDE7 Cj4+ICsgICAgcmV0dXJuIHBhY2tldC0+c2l6ZTsKPj4gK30KPj4gKwo+PiArY29uc3QgQVZDb2Rl YyBmZl9kZnB3bV9kZWNvZGVyID0gewo+PiArICAgIC5uYW1lICAgICAgICAgICA9ICJkZnB3bSIs Cj4+ICsgICAgLmxvbmdfbmFtZSAgICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkRGUFdNMWEg YXVkaW8iKSwKPj4gKyAgICAudHlwZSAgICAgICAgICAgPSBBVk1FRElBX1RZUEVfQVVESU8sCj4+ ICsgICAgLmlkICAgICAgICAgICAgID0gQVZfQ09ERUNfSURfREZQV00sCj4+ICsgICAgLnByaXZf ZGF0YV9zaXplID0gc2l6ZW9mKERGUFdNU3RhdGUpLAo+PiArICAgIC5pbml0ICAgICAgICAgICA9 IGRmcHdtX2RlY19pbml0LAo+PiArICAgIC5jbG9zZSAgICAgICAgICA9IGRmcHdtX2RlY19lbmQs Cj4+ICsgICAgLmRlY29kZSAgICAgICAgID0gZGZwd21fZGVjX2ZyYW1lLAo+PiArICAgIC5jYXBh YmlsaXRpZXMgICA9IDAsCj4gVGhpcyBmbGFncyBhcmUgbm90IGNvcnJlY3QsIG9yIG9wdGltYWwg aW4gYW55IHdheS4KPgo+PiArICAgIC5jYXBzX2ludGVybmFsICA9IEZGX0NPREVDX0NBUF9JTklU X1RIUkVBRFNBRkUsCj4+ICt9Owo+PiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKPj4gZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvZGZwd21lbmMuYyBiL2xpYmF2Y29kZWMvZGZwd21lbmMuYwo+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi45N2ZjNDJlCj4+IC0tLSAv ZGV2L251bGwKPj4gKysrIGIvbGliYXZjb2RlYy9kZnB3bWVuYy5jCj4+IEBAIC0wLDAgKzEsMTQw IEBACj4+ICsvKgo+PiArICogREZQV00gZW5jb2Rlcgo+PiArICogQ29weXJpZ2h0IChjKSAyMDIy IEphY2sgQnJ1aWVubmUKPj4gKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNiBCZW4gIkdyZWFz ZU1vbmtleSIgUnVzc2VsbAo+PiArICoKPj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBl Zy4KPj4gKyAqCj4+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPj4gKyAqIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiAr ICoKPj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4+ICsgKiBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoKPj4gKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKPj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKPj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMQo+PiBVU0EKPj4gKyAqLwo+PiAr Cj4+ICsvKioKPj4gKyAqIEBmaWxlCj4+ICsgKiBERlBXTTFhIGVuY29kZXIKPj4gKyAqLwo+PiAr Cj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2ludGVybmFsLmgiCj4+ICsjaW5jbHVkZSAiYXZjb2Rl Yy5oIgo+PiArI2luY2x1ZGUgImNvZGVjX2lkLmgiCj4+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIK Pj4gKwo+PiArdHlwZWRlZiBzdHJ1Y3Qgewo+PiArICAgIGludCBmcSwgcSwgcywgbHQ7Cj4+ICt9 IERGUFdNU3RhdGU7Cj4+ICsKPj4gKy8vIERGUFdNIGNvZGVjIGZyb20gaHR0cHM6Ly9naXRodWIu Y29tL0NoZW5UaHJlYWQvZGZwd20vYmxvYi9tYXN0ZXIvMWEvCj4+ICsvLyBMaWNlbnNlZCBpbiB0 aGUgcHVibGljIGRvbWFpbgo+PiArCj4+ICsjaWZuZGVmIENPTlNUX1BSRUMKPj4gKyNkZWZpbmUg Q09OU1RfUFJFQyAxMAo+PiArI2VuZGlmCj4+ICsKPj4gKy8vIG5vdGUsIGxlbiBkZW5vdGVzIGhv dyBtYW55IGNvbXByZXNzZWQgYnl0ZXMgdGhlcmUgYXJlICh1bmNvbXByZXNzZWQKPj4gYnl0ZXMg LyA4KS4KPj4gK3N0YXRpYyB2b2lkIGF1X2NvbXByZXNzKERGUFdNU3RhdGUgKnN0YXRlLCBpbnQg bGVuLCB1aW50OF90ICpvdXRidWYsIGludDhfdAo+PiAqaW5idWYpCj4+ICt7Cj4+ICsgICAgaW50 IGksIGo7Cj4+ICsgICAgdWludDhfdCBkID0gMDsKPj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVu OyBpKyspIHsKPj4gKyAgICAgICAgZm9yIChqID0gMDsgaiA8IDg7IGorKykgewo+PiArICAgICAg ICAgICAgaW50IG5xLCBzdCwgbnM7Cj4+ICsgICAgICAgICAgICAvLyBnZXQgc2FtcGxlCj4+ICsg ICAgICAgICAgICBpbnQgdiA9ICooaW5idWYrKyk7Cj4+ICsgICAgICAgICAgICAvLyBzZXQgYml0 IC8gdGFyZ2V0Cj4+ICsgICAgICAgICAgICBpbnQgdCA9ICh2IDwgc3RhdGUtPnEgfHwgdiA9PSAt MTI4ID8gLTEyOCA6IDEyNyk7Cj4+ICsgICAgICAgICAgICBkID4+PSAxOwo+PiArICAgICAgICAg ICAgaWYodCA+IDApCj4+ICsgICAgICAgICAgICAgICAgZCB8PSAweDgwOwo+PiArCj4+ICsgICAg ICAgICAgICAvLyBhZGp1c3QgY2hhcmdlCj4+ICsgICAgICAgICAgICBucSA9IHN0YXRlLT5xICsg KChzdGF0ZS0+cyAqICh0LXN0YXRlLT5xKSArCj4+ICgxPDwoQ09OU1RfUFJFQy0xKSkpPj5DT05T VF9QUkVDKTsKPj4gKyAgICAgICAgICAgIGlmKG5xID09IHN0YXRlLT5xICYmIG5xICE9IHQpCj4+ ICsgICAgICAgICAgICAgICAgbnEgKz0gKHQgPT0gMTI3ID8gMSA6IC0xKTsKPj4gKyAgICAgICAg ICAgIHN0YXRlLT5xID0gbnE7Cj4+ICsKPj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBzdHJlbmd0 aAo+PiArICAgICAgICAgICAgc3QgPSAodCAhPSBzdGF0ZS0+bHQgPyAwIDogKDE8PENPTlNUX1BS RUMpLTEpOwo+PiArICAgICAgICAgICAgbnMgPSBzdGF0ZS0+czsKPj4gKyAgICAgICAgICAgIGlm KG5zICE9IHN0KQo+PiArICAgICAgICAgICAgICAgIG5zICs9IChzdCAhPSAwID8gMSA6IC0xKTsK Pj4gKyNpZiBDT05TVF9QUkVDID4gOAo+PiArICAgICAgICAgICAgaWYobnMgPCAxKygxPDwoQ09O U1RfUFJFQy04KSkpIG5zID0gMSsoMTw8KENPTlNUX1BSRUMtOCkpOwo+PiArI2VuZGlmCj4+ICsg ICAgICAgICAgICBzdGF0ZS0+cyA9IG5zOwo+PiArCj4+ICsgICAgICAgICAgICBzdGF0ZS0+bHQg PSB0Owo+PiArCj4+ICsgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiJTRpICU0aSAlNGkg JTRpXG4iLCB2LCAqcSwgKnMsIHQpOwo+PiArICAgICAgICAgICAgLy91c2xlZXAoMTAwMDApOwo+ PiArICAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAgLy8gb3V0cHV0IGJpdHMKPj4gKyAgICAgICAg KihvdXRidWYrKykgPSBkOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIGF2X2NvbGQg aW50IGRmcHdtX2VuY19pbml0KHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4KQo+PiArewo+PiAr ICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4+ICsKPj4gKyAgICBzdGF0 ZS0+ZnEgPSAwOwo+PiArICAgIHN0YXRlLT5xID0gMDsKPj4gKyAgICBzdGF0ZS0+cyA9IDA7Cj4+ ICsgICAgc3RhdGUtPmx0ID0gLTEyODsKPj4gKwo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZW5jX2VuZChzdHJ1Y3QgQVZDb2RlY0NvbnRl eHQgKmN0eCkKPj4gK3sKPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPiBQbGVhc2UgcmVtb3ZlIGZ1 bmN0aW9ucyB0aGF0IGRvIG5vdGhpbmcuCj4KPj4gKwo+PiArc3RhdGljIGludCBkZnB3bV9lbmNf ZnJhbWUoc3RydWN0IEFWQ29kZWNDb250ZXh0ICpjdHgsIHN0cnVjdCBBVlBhY2tldAo+PiAqcGFj a2V0LAo+PiArICAgIGNvbnN0IHN0cnVjdCBBVkZyYW1lICpmcmFtZSwgaW50ICpnb3RfcGFja2V0 KQo+PiArewo+PiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4+ICsg ICAgaW50IHNpemUgPSBmcmFtZS0+bmJfc2FtcGxlcyAvIDggKyAoZnJhbWUtPm5iX3NhbXBsZXMg JSA4ID4gMCA/IDEgOiAwKTsKPj4gKyAgICBpbnQ4X3QgKmRhdGEgPSBhdl9tYWxsb2Moc2l6ZSAq IDgpOwo+PiArCj4+ICsgICAgaWYgKCFkYXRhKSByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiAr Cj4+ICsgICAgaWYgKHBhY2tldC0+c2l6ZSA8IHNpemUpIGF2X2dyb3dfcGFja2V0KHBhY2tldCwg c2l6ZSAtIHBhY2tldC0+c2l6ZSk7Cj4+ICsgICAgZWxzZSBpZiAocGFja2V0LT5zaXplID4gc2l6 ZSkgYXZfc2hyaW5rX3BhY2tldChwYWNrZXQsIHNpemUpOwo+PiArCj4+ICsgICAgLy8gbWFrZSBh IHRlbXBvcmFyeSBTOCBidWZmZXIgYXMgREZQV00gbmVlZHMgUzggYnV0IEZGbXBlZyB1c2VzIFU4 Cj4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmcmFtZS0+bmJfc2FtcGxlczsgaSsrKSBkYXRh W2ldID0gZnJhbWUtPmRhdGFbMF1baV0KPj4gLSAxMjg7Cj4+ICsgICAgZm9yIChpbnQgaSA9IGZy YW1lLT5uYl9zYW1wbGVzOyBpIDwgc2l6ZSAqIDg7IGkrKykgZGF0YVtpXSA9IDA7Cj4+ICsKPj4g KyAgICBhdV9jb21wcmVzcyhzdGF0ZSwgc2l6ZSwgcGFja2V0LT5kYXRhLCBkYXRhKTsKPj4gKyAg ICBhdl9mcmVlKGRhdGEpOwo+IFVzaW5nIGV4dHJhIGJ1ZmZlciBmb3Igc3VjaCB0cml2aWFsIGNv ZGUgaXMgbm90IG9wdGltYWwgc29sdXRpb24uCj4KPj4gKwo+PiArICAgIGlmIChnb3RfcGFja2V0 KSAqZ290X3BhY2tldCA9IDE7Cj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK2NvbnN0 IEFWQ29kZWMgZmZfZGZwd21fZW5jb2RlciA9IHsKPj4gKyAgICAubmFtZSAgICAgICAgICAgID0g ImRmcHdtIiwKPj4gKyAgICAubG9uZ19uYW1lICAgICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwo IkRGUFdNMWEgYXVkaW8iKSwKPj4gKyAgICAudHlwZSAgICAgICAgICAgID0gQVZNRURJQV9UWVBF X0FVRElPLAo+PiArICAgIC5pZCAgICAgICAgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPj4g KyAgICAucHJpdl9kYXRhX3NpemUgID0gc2l6ZW9mKERGUFdNU3RhdGUpLAo+PiArICAgIC5pbml0 ICAgICAgICAgICAgPSBkZnB3bV9lbmNfaW5pdCwKPj4gKyAgICAuY2xvc2UgICAgICAgICAgID0g ZGZwd21fZW5jX2VuZCwKPj4gKyAgICAuZW5jb2RlMiAgICAgICAgID0gZGZwd21fZW5jX2ZyYW1l LAo+PiArICAgIC5zYW1wbGVfZm10cyAgICAgPSAoY29uc3QgZW51bSBBVlNhbXBsZUZvcm1hdFtd KXtBVl9TQU1QTEVfRk1UX1U4LAo+PiBBVl9TQU1QTEVfRk1UX05PTkV9LAo+PiArICAgIC5jaGFu bmVsX2xheW91dHMgPSAoY29uc3QgdWludDY0X3RbXSl7QVZfQ0hfTEFZT1VUX01PTk8sIDB9LAo+ PiArICAgIC5jYXBhYmlsaXRpZXMgICAgPSBBVl9DT0RFQ19DQVBfVkFSSUFCTEVfRlJBTUVfU0la RSwKPj4gKyAgICAuY2Fwc19pbnRlcm5hbCAgID0gRkZfQ09ERUNfQ0FQX0lOSVRfVEhSRUFEU0FG RSwKPj4gK307Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3V0aWxzLmMgYi9saWJhdmNvZGVj L3V0aWxzLmMKPj4gaW5kZXggNmY5ZDkwYS4uMDY2ZGE3NiAxMDA2NDQKPj4gLS0tIGEvbGliYXZj b2RlYy91dGlscy5jCj4+ICsrKyBiL2xpYmF2Y29kZWMvdXRpbHMuYwo+PiBAQCAtNTc3LDYgKzU3 Nyw4IEBAIGVudW0gQVZDb2RlY0lEIGF2X2dldF9wY21fY29kZWMoZW51bSBBVlNhbXBsZUZvcm1h dCBmbXQsCj4+IGludCBiZSkKPj4gICBpbnQgYXZfZ2V0X2JpdHNfcGVyX3NhbXBsZShlbnVtIEFW Q29kZWNJRCBjb2RlY19pZCkKPj4gICB7Cj4+ICAgICAgIHN3aXRjaCAoY29kZWNfaWQpIHsKPj4g KyAgICBjYXNlIEFWX0NPREVDX0lEX0RGUFdNOgo+PiArICAgICAgICByZXR1cm4gMTsKPj4gICAg ICAgY2FzZSBBVl9DT0RFQ19JRF9BRFBDTV9TQlBST18yOgo+PiAgICAgICAgICAgcmV0dXJuIDI7 Cj4+ICAgICAgIGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMzoKPj4gZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvdmVyc2lvbi5oIGIvbGliYXZjb2RlYy92ZXJzaW9uLmgKPj4gaW5kZXggZDkw MDUwMy4uODRmMzk3OSAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy92ZXJzaW9uLmgKPj4gKysr IGIvbGliYXZjb2RlYy92ZXJzaW9uLmgKPj4gQEAgLTI4LDcgKzI4LDcgQEAKPj4gICAjaW5jbHVk ZSAibGliYXZ1dGlsL3ZlcnNpb24uaCIKPj4gICAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05f TUFKT1IgIDU5Cj4+IC0jZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiAgMjEKPj4gKyNk ZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SICAyMgo+PiAgICNkZWZpbmUgTElCQVZDT0RF Q19WRVJTSU9OX01JQ1JPIDEwMAo+PiAgICAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQg QVZfVkVSU0lPTl9JTlQoTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SLCBcCj4+IGRpZmYgLS1naXQg YS9saWJhdmZvcm1hdC9NYWtlZmlsZSBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+IGluZGV4IDY1 NjZlNDAuLmI4OTA3M2EgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+ICsr KyBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+IEBAIC0xNjUsNiArMTY1LDggQEAgT0JKUy0kKENP TkZJR19EQVVEX01VWEVSKSAgICAgICAgICAgICAgICArPSBkYXVkZW5jLm8KPj4gICBPQkpTLSQo Q09ORklHX0RDU1RSX0RFTVVYRVIpICAgICAgICAgICAgICs9IGRjc3RyLm8KPj4gICBPQkpTLSQo Q09ORklHX0RFUkZfREVNVVhFUikgICAgICAgICAgICAgICs9IGRlcmYubyBwY20ubwo+PiAgIE9C SlMtJChDT05GSUdfREZBX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gZGZhLm8KPj4gK09CSlMt JChDT05GSUdfREZQV01fREVNVVhFUikgICAgICAgICAgICAgKz0gZGZwd21kZWMubyBwY20ubwo+ PiArT0JKUy0kKENPTkZJR19ERlBXTV9NVVhFUikgICAgICAgICAgICAgICArPSByYXdlbmMubwo+ PiAgIE9CSlMtJChDT05GSUdfREhBVl9ERU1VWEVSKSAgICAgICAgICAgICAgKz0gZGhhdi5vCj4+ ICAgT0JKUy0kKENPTkZJR19ESVJBQ19ERU1VWEVSKSAgICAgICAgICAgICArPSBkaXJhY2RlYy5v IHJhd2RlYy5vCj4+ICAgT0JKUy0kKENPTkZJR19ESVJBQ19NVVhFUikgICAgICAgICAgICAgICAr PSByYXdlbmMubwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jIGIvbGli YXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4+IGluZGV4IGQwNjZhNzcuLjU4N2FkNTkgMTAwNjQ0Cj4+ IC0tLSBhL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+PiArKysgYi9saWJhdmZvcm1hdC9hbGxm b3JtYXRzLmMKPj4gQEAgLTEyNCw2ICsxMjQsOCBAQCBleHRlcm4gY29uc3QgQVZPdXRwdXRGb3Jt YXQgZmZfZGF1ZF9tdXhlcjsKPj4gICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfZGNz dHJfZGVtdXhlcjsKPj4gICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfZGVyZl9kZW11 eGVyOwo+PiAgIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9kZmFfZGVtdXhlcjsKPj4g K2V4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9kZnB3bV9kZW11eGVyOwo+PiArZXh0ZXJu IGNvbnN0IEFWT3V0cHV0Rm9ybWF0IGZmX2RmcHdtX211eGVyOwo+PiAgIGV4dGVybiBjb25zdCBB VklucHV0Rm9ybWF0ICBmZl9kaGF2X2RlbXV4ZXI7Cj4+ICAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRG b3JtYXQgIGZmX2RpcmFjX2RlbXV4ZXI7Cj4+ICAgZXh0ZXJuIGNvbnN0IEFWT3V0cHV0Rm9ybWF0 IGZmX2RpcmFjX211eGVyOwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZGZwd21kZWMuYyBi L2xpYmF2Zm9ybWF0L2RmcHdtZGVjLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXgg MDAwMDAwMC4uYWQ1YmZhNQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2Zm9ybWF0L2Rm cHdtZGVjLmMKPj4gQEAgLTAsMCArMSwxMDcgQEAKPj4gKy8qCj4+ICsgKiBSQVcgUENNIGRlbXV4 ZXJzCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDIgRmFicmljZSBCZWxsYXJkCj4+ICsgKiBDb3B5 cmlnaHQgKGMpIDIwMjIgSmFjayBCcnVpZW5uZQo+PiArICoKPj4gKyAqIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEZGbXBlZy4KPj4gKyAqCj4+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+ICsgKiBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPj4gKyAqIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgo+PiArICoKPj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4+ICsg KiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoK Pj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKPj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMQo+PiBVU0EK Pj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2F2c3RyaW5nLmgiCj4+ICsjaW5j bHVkZSAiYXZmb3JtYXQuaCIKPj4gKyNpbmNsdWRlICJpbnRlcm5hbC5oIgo+PiArI2luY2x1ZGUg InBjbS5oIgo+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9sb2cuaCIKPj4gKyNpbmNsdWRlICJsaWJh dnV0aWwvb3B0LmgiCj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0LmgiCj4+ICsKPj4g K3R5cGVkZWYgc3RydWN0IERGUFdNQXVkaW9EZW11eGVyQ29udGV4dCB7Cj4+ICsgICAgQVZDbGFz cyAqY2xhc3M7Cj4+ICsgICAgaW50IHNhbXBsZV9yYXRlOwo+PiArfSBERlBXTUF1ZGlvRGVtdXhl ckNvbnRleHQ7Cj4+ICsKPj4gK3N0YXRpYyBpbnQgZGZwd21fcmVhZF9oZWFkZXIoQVZGb3JtYXRD b250ZXh0ICpzKQo+PiArewo+PiArICAgIERGUFdNQXVkaW9EZW11eGVyQ29udGV4dCAqczEgPSBz LT5wcml2X2RhdGE7Cj4+ICsgICAgQVZDb2RlY1BhcmFtZXRlcnMgKnBhcjsKPj4gKyAgICBBVlN0 cmVhbSAqc3Q7Cj4+ICsgICAgdWludDhfdCAqbWltZV90eXBlID0gTlVMTDsKPj4gKwo+PiArICAg IHN0ID0gYXZmb3JtYXRfbmV3X3N0cmVhbShzLCBOVUxMKTsKPj4gKyAgICBpZiAoIXN0KQo+PiAr ICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiArICAgIHBhciA9IHN0LT5jb2RlY3Bh cjsKPj4gKwo+PiArICAgIHBhci0+Y29kZWNfdHlwZSAgPSBBVk1FRElBX1RZUEVfQVVESU87Cj4+ ICsgICAgcGFyLT5jb2RlY19pZCAgICA9IHMtPmlmb3JtYXQtPnJhd19jb2RlY19pZDsKPj4gKyAg ICBwYXItPnNhbXBsZV9yYXRlID0gczEtPnNhbXBsZV9yYXRlOwo+PiArICAgIHBhci0+Y2hhbm5l bHMgICAgPSAxOwo+PiArCj4+ICsgICAgYXZfb3B0X2dldChzLT5wYiwgIm1pbWVfdHlwZSIsIEFW X09QVF9TRUFSQ0hfQ0hJTERSRU4sICZtaW1lX3R5cGUpOwo+PiArICAgIGlmIChtaW1lX3R5cGUg JiYgcy0+aWZvcm1hdC0+bWltZV90eXBlKSB7Cj4+ICsgICAgICAgIGludCByYXRlID0gMDsKPj4g KyAgICAgICAgY29uc3QgY2hhciAqb3B0aW9uczsKPj4gKyAgICAgICAgaWYgKGF2X3N0cmlzdGFy dChtaW1lX3R5cGUsIHMtPmlmb3JtYXQtPm1pbWVfdHlwZSwgJm9wdGlvbnMpKSB7IC8qCj4+IGF1 ZGlvL0wxNiAqLwo+PiArICAgICAgICAgICAgd2hpbGUgKG9wdGlvbnMgPSBzdHJjaHIob3B0aW9u cywgJzsnKSkgewo+PiArICAgICAgICAgICAgICAgIG9wdGlvbnMrKzsKPj4gKyAgICAgICAgICAg ICAgICBpZiAoIXJhdGUpCj4+ICsgICAgICAgICAgICAgICAgICAgIHNzY2FuZihvcHRpb25zLCAi IHJhdGU9JWQiLCAgICAgJnJhdGUpOwo+PiArICAgICAgICAgICAgfQo+PiArICAgICAgICAgICAg aWYgKHJhdGUgPD0gMCkgewo+PiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJS T1IsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHNhbXBsZV9yYXRlIGZvdW5k IGluIG1pbWVfdHlwZSBcIiVzXCJcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIG1pbWVf dHlwZSk7Cj4+ICsgICAgICAgICAgICAgICAgYXZfZnJlZXAoJm1pbWVfdHlwZSk7Cj4+ICsgICAg ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+ICsgICAgICAgICAgICB9 Cj4+ICsgICAgICAgICAgICBwYXItPnNhbXBsZV9yYXRlID0gcmF0ZTsKPj4gKyAgICAgICAgfQo+ PiArICAgIH0KPj4gKyAgICBhdl9mcmVlcCgmbWltZV90eXBlKTsKPj4gKwo+PiArICAgIHBhci0+ Yml0c19wZXJfY29kZWRfc2FtcGxlID0gYXZfZ2V0X2JpdHNfcGVyX3NhbXBsZShwYXItPmNvZGVj X2lkKTsKPj4gKwo+PiArICAgIGF2X2Fzc2VydDAocGFyLT5iaXRzX3Blcl9jb2RlZF9zYW1wbGUg PiAwKTsKPj4gKwo+PiArICAgIHBhci0+YmxvY2tfYWxpZ24gPSAxOwo+PiArCj4+ICsgICAgYXZw cml2X3NldF9wdHNfaW5mbyhzdCwgNjQsIDEsIHBhci0+c2FtcGxlX3JhdGUpOwo+PiArICAgIHJl dHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3QgQVZPcHRpb24gZGZwd21fb3B0aW9u c1tdID0gewo+PiArICAgIHsgInNhbXBsZV9yYXRlIiwgIiIsIG9mZnNldG9mKERGUFdNQXVkaW9E ZW11eGVyQ29udGV4dCwgc2FtcGxlX3JhdGUpLAo+PiBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0ID0g NDQxMDB9LCAwLCBJTlRfTUFYLCBBVl9PUFRfRkxBR19ERUNPRElOR19QQVJBTSB9LAo+PiArICAg IHsgTlVMTCB9LAo+PiArfTsKPj4gK3N0YXRpYyBjb25zdCBBVkNsYXNzIGRmcHdtX2RlbXV4ZXJf Y2xhc3MgPSB7Cj4+ICsgICAgLmNsYXNzX25hbWUgPSAiZGZwd20gZGVtdXhlciIsCj4+ICsgICAg Lml0ZW1fbmFtZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKPj4gKyAgICAub3B0aW9uICAgICA9 IGRmcHdtX29wdGlvbnMsCj4+ICsgICAgLnZlcnNpb24gICAgPSBMSUJBVlVUSUxfVkVSU0lPTl9J TlQsCj4+ICt9Owo+PiArCj4+ICtjb25zdCBBVklucHV0Rm9ybWF0IGZmX2RmcHdtX2RlbXV4ZXIg PSB7Cj4+ICsgICAgLm5hbWUgICAgICAgICAgID0gImRmcHdtIiwKPj4gKyAgICAubG9uZ19uYW1l ICAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgicmF3IERGUFdNMWEgZGF0YSIpLAo+PiArICAg IC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihERlBXTUF1ZGlvRGVtdXhlckNvbnRleHQpLAo+PiAr ICAgIC5yZWFkX2hlYWRlciAgICA9IGRmcHdtX3JlYWRfaGVhZGVyLAo+PiArICAgIC5yZWFkX3Bh Y2tldCAgICA9IGZmX3BjbV9yZWFkX3BhY2tldCwKPj4gKyAgICAucmVhZF9zZWVrICAgICAgPSBm Zl9wY21fcmVhZF9zZWVrLAo+PiArICAgIC5mbGFncyAgICAgICAgICA9IEFWRk1UX0dFTkVSSUNf SU5ERVgsCj4+ICsgICAgLmV4dGVuc2lvbnMgICAgID0gImRmcHdtIiwKPj4gKyAgICAucmF3X2Nv ZGVjX2lkICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPj4gKyAgICAucHJpdl9jbGFzcyAgICAgPSAm ZGZwd21fZGVtdXhlcl9jbGFzcywKPj4gK307Cj4+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcmF3ZW5jLmMgYi9saWJhdmZvcm1hdC9yYXdl bmMuYwo+PiBpbmRleCA0YmJhZTc3Li4xN2I2MjdiIDEwMDY0NAo+PiAtLS0gYS9saWJhdmZvcm1h dC9yYXdlbmMuYwo+PiArKysgYi9saWJhdmZvcm1hdC9yYXdlbmMuYwo+PiBAQCAtMTkyLDYgKzE5 MiwxOSBAQCBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9kYXRhX211eGVyID0gewo+PiAgIH07Cj4+ ICAgI2VuZGlmCj4+ICAgKyNpZiBDT05GSUdfREZQV01fTVVYRVIKPj4gK2NvbnN0IEFWT3V0cHV0 Rm9ybWF0IGZmX2RmcHdtX211eGVyID0gewo+PiArICAgIC5uYW1lICAgICAgICAgICAgICA9ICJk ZnB3bSIsCj4+ICsgICAgLmxvbmdfbmFtZSAgICAgICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwo InJhdyBERlBXTTFhIGF1ZGlvIiksCj4+ICsgICAgLmV4dGVuc2lvbnMgICAgICAgID0gImRmcHdt IiwKPj4gKyAgICAuYXVkaW9fY29kZWMgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPj4gKyAg ICAudmlkZW9fY29kZWMgICAgICAgPSBBVl9DT0RFQ19JRF9OT05FLAo+PiArICAgIC5pbml0ICAg ICAgICAgICAgICA9IGZvcmNlX29uZV9zdHJlYW0sCj4+ICsgICAgLndyaXRlX3BhY2tldCAgICAg ID0gZmZfcmF3X3dyaXRlX3BhY2tldCwKPj4gKyAgICAuZmxhZ3MgICAgICAgICAgICAgPSBBVkZN VF9OT1RJTUVTVEFNUFMsCj4+ICt9Owo+PiArI2VuZGlmCj4+ICsKPj4gICAjaWYgQ09ORklHX0RJ UkFDX01VWEVSCj4+ICAgY29uc3QgQVZPdXRwdXRGb3JtYXQgZmZfZGlyYWNfbXV4ZXIgPSB7Cj4+ ICAgICAgIC5uYW1lICAgICAgICAgICAgICA9ICJkaXJhYyIsCj4+IGRpZmYgLS1naXQgYS9saWJh dmZvcm1hdC92ZXJzaW9uLmggYi9saWJhdmZvcm1hdC92ZXJzaW9uLmgKPj4gaW5kZXggMjYyMzQ1 Ny4uMGY4OWFmNCAxMDA2NDQKPj4gLS0tIGEvbGliYXZmb3JtYXQvdmVyc2lvbi5oCj4+ICsrKyBi L2xpYmF2Zm9ybWF0L3ZlcnNpb24uaAo+PiBAQCAtMzIsOCArMzIsOCBAQAo+PiAgIC8vIE1ham9y IGJ1bXBpbmcgbWF5IGFmZmVjdCBUaWNrZXQ1NDY3LCA1NDIxLCA1NDUxKGNvbXBhdGliaWxpdHkg d2l0aAo+PiBDaHJvbWl1bSkKPj4gICAvLyBBbHNvIHBsZWFzZSBhZGQgYW55IHRpY2tldCBudW1i ZXJzIHRoYXQgeW91IGJlbGlldmUgbWlnaHQgYmUgYWZmZWN0ZWQKPj4gaGVyZQo+PiAgICNkZWZp bmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NQUpPUiAgNTkKPj4gLSNkZWZpbmUgTElCQVZGT1JNQVRf VkVSU0lPTl9NSU5PUiAgMTcKPj4gLSNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyAx MDIKPj4gKyNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiAgMTgKPj4gKyNkZWZpbmUg TElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyAxMDAKPj4gICAgI2RlZmluZSBMSUJBVkZPUk1BVF9W RVJTSU9OX0lOVCBBVl9WRVJTSU9OX0lOVChMSUJBVkZPUk1BVF9WRVJTSU9OX01BSk9SLAo+PiBc Cj4+Cj4+IExJQkFWRk9STUFUX1ZFUlNJT05fTUlOT1IsIFwKPj4gLS0gCj4+IDIuMzUuMQo+Pgo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBmZm1w ZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4+IGh0dHBz Oi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Pgo+PiBUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPj4gZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsg YWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1 YmplY3QgInVuc3Vic2NyaWJlIi4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=