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 ESMTPS id 7124240D33 for ; Sat, 18 Jan 2025 02:22:51 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6125B68B7CB; Sat, 18 Jan 2025 04:22:48 +0200 (EET) Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EF92D68B178 for ; Sat, 18 Jan 2025 04:22:41 +0200 (EET) Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-e5787c3fcf8so5170306276.1 for ; Fri, 17 Jan 2025 18:22:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737166960; x=1737771760; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=c97Oo0nn1U81ukgiI4ZC77vpPDFrkQMQE8/Vy6OWgWg=; b=OwMLuyVPRcmup0Bx9/uTUm6oiA37Vnbw8iH2vCiIdFzb9+h5fnsArhTm4WUvhO8gg6 gzTXBQK05MqRtWBVb2LhN24US9f9R0Nvt8sqdPxPO1Stsy58XUznBbBrZIAwGhcA2ZgF WElmGPsSbLmFR+ZW/8ULQl5+32DsxKw8h53WEpzta8Wq6Gce2C3iQn/Ar3j5gOOcGuXT 2O2J6vHVjz4nQIVeQ2ampTZa4VoMrJzWx0WwXlW+xdQCOkQdZ4KwO2wgIIlIcWPM89VN 77DYSVGxTr5EaeA41SKvCEDURn5W/pidOYqXML4mLgB97y93SYRBII7PipkVC0J6bSgo SS2g== X-Gm-Message-State: AOJu0Ywao5xf1tafyrkERbhGA7abXJtaaKdIPJc152cU2bX1NAJlQWBN ZM/V1fijLf7aSw8nDbNY09M1/Uu+8LDaWZpFwXRKJNke5Zau6WKRrZlzOJbnZOfcRVvHE1yrqaD okKRjEmMvTvYdfJfVXBw94AWjh6o= X-Gm-Gg: ASbGnctrx616RDLepGkXGmWSvU4IdxraTXuTOtu2Y2sA9gByn/1eMOp0QBQ0fi+yZ4E ZvgIChM1XGXJniABD1AjM8BUHsYKmfgWH290J86i+GTVgYmAOQmA= X-Google-Smtp-Source: AGHT+IG/PO79e3zc9rOgssMCthgl3ZY+8CDZesHCiYiFKVUpGzNjDDHPf1NmJbjpQLnF+7T5Wk3r+LO6o2Y7EhJVZ/Q= X-Received: by 2002:a05:690c:7349:b0:6e2:2600:ed50 with SMTP id 00721157ae682-6f6eb6b08cemr40896377b3.21.1737166960129; Fri, 17 Jan 2025 18:22:40 -0800 (PST) MIME-Version: 1.0 References: <20250116200826.33624-1-romain.beauxis@gmail.com> In-Reply-To: Date: Sat, 18 Jan 2025 02:22:29 +0000 X-Gm-Features: AbW1kvaX6TxNyhilqJFilnr2M7piCNgzfJP-w1V_Lm5XEypinF9CHdxi6YSlRBM Message-ID: To: Romain Beauxis X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v0] Implement promeg decoder. 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: , From: Kieran Kunhya via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Kieran Kunhya , FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gRnJpLCAxNyBKYW4gMjAyNSwgMjE6MzIgUm9tYWluIEJlYXV4aXMsIDxyb21haW4uYmVhdXhp c0BnbWFpbC5jb20+IHdyb3RlOgoKPiBMZSB2ZW4uIDE3IGphbnYuIDIwMjUgw6AgMDg6MzIsIEtp ZXJhbiBLdW5oeWEKPiA8a2llcmFuNjE4QGdvb2dsZW1haWwuY29tPiBhIMOpY3JpdCA6Cj4gPgo+ ID4gT24gRnJpLCBKYW4gMTcsIDIwMjUgYXQgMjoyNOKAr1BNIEtpZXJhbiBLdW5oeWEgPGtpZXJh bjYxOEBnb29nbGVtYWlsLmNvbT4KPiB3cm90ZToKPiA+ID4KPiA+ID4gT24gRnJpLCBKYW4gMTcs IDIwMjUgYXQgMjowMOKAr1BNIFJvbWFpbiBCZWF1eGlzIDwKPiByb21haW4uYmVhdXhpc0BnbWFp bC5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gSGksCj4gPiA+ID4KPiA+ID4gPiBMZSBqZXUu IDE2IGphbnYuIDIwMjUgw6AgMTY6NDAsIEtpZXJhbiBLdW5oeWEKPiA+ID4gPiA8a2llcmFuNjE4 QGdvb2dsZW1haWwuY29tPiBhIMOpY3JpdCA6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1LCBK YW4gMTYsIDIwMjUgYXQgOTozNeKAr1BNIFJvbWFpbiBCZWF1eGlzIDwKPiByb21haW4uYmVhdXhp c0BnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBMZSBqZXUuIDE2IGph bnYuIDIwMjUgw6AgMTQ6NDgsIEtpZXJhbiBLdW5oeWEKPiA+ID4gPiA+ID4gPGtpZXJhbjYxOEBn b29nbGVtYWlsLmNvbT4gYSDDqWNyaXQgOgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gT24g VGh1LCAxNiBKYW4gMjAyNSwgMjA6MTUgUm9tYWluIEJlYXV4aXMsIDwKPiByb21haW4uYmVhdXhp c0BnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiBUaGlzIHBh dGNoIGltcGxlbWVudHMgdGhlIGRlY29kaW5nIGxvZ2ljIGZvciB0aGUgRkVDIGVycm9yLQo+ID4g PiA+ID4gPiA+PiBjb3JyZWN0aW9uIG1ldGhvZCBkZXNjcmliZWQgaW4gdGhlIFByby1NUEVHIENv UCAjMy1SMiBGRUNbMV0KPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4gV2UgYXJlIHN0aWxs IGluIHRoZSBwcm9jZXNzIG9mIHRlc3RpbmcgdGhpcyBwYXRjaCB3aXRoIG91cgo+IGVuY29kZXJz IGJ1dAo+ID4gPiA+ID4gPiA+PiBJIHdhbnRlZCB0byBzZW5kIGl0IG5vdyBpbiBjYXNlIGl0IGNv dWxkIHVzZSBzb21lIGVhcmx5Cj4gcmV2aWV3Lgo+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ PiBUaGUgY29kZSBzZWVtcyBjbGVhbiBlbm91Z2ggYW5kIHN0cmFpZ2h0IGZvcndhcmQ6Cj4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEFzIHNvbWVvbmUgd2hvIHdyb3Rl IGFuIEZFQyByZWNlaXZlciBpbiBVcGlwZSwgSSdtIHN1cnByaXNlZAo+IHRvIHNlZSB0aGUgd29y ZCAic3RyYWlnaHQgZm9yd2FyZCIgYW5kIEZFQyB1c2VkIGluIHRoZSBzYW1lIHNlbnRlbmNlLiBU aGUKPiBVcGlwZSBpbXBsZW1lbnRhdGlvbiAod2hpY2ggd2FzIG5ldmVyIG1lcmdlZCkgaXMgZXh0 cmVtZWx5IG1lc3N5IGFuZAo+IGNvbXBsZXggYW5kIGNvbW1lcmNpYWwgaW1wbGVtZW50YXRpb25z IGFyZSBldmVuIHdvcnNlIGFzIEkgdW5kZXJzdGFuZC4KPiBUaGVyZSBhcmUgdG9ucyBvZiBlZGdl IGNhc2VzLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBZZXMsIHlvdSdyZSByaWdodCEgV2hhdCBJ IG1lYW50IGJ5IHN0cmFpZ2h0IGZvcndhcmQgaXMgdGhhdCwgaW4KPiBteQo+ID4gPiA+ID4gPiBl eHBlcmllbmNlLCBpbiB0aGUgYWJzZW5jZSBvZiBhIHNwZWNpZmljIGhldXJpc3RpY3MsIHRoZSBt b3N0Cj4gc2ltcGxlCj4gPiA+ID4gPiA+IGFuZCBlbGVnYW50IHNvbHV0aW9uIGlzIHVzdWFsbHkg dGhlIGJlc3QsIGF0IGxlYXN0IHRvIG1ha2Ugc3VyZQo+IHRoZQo+ID4gPiA+ID4gPiBjb2RlIGlz IGVhc3kgdG8gcmVhZCBhbmQgdG8gaW1wcm92ZSBvbiBsYXRlci4KPiA+ID4gPiA+Cj4gPiA+ID4g PiBUaGlzIGlzIG5vdCBhY2FkZW1pYS4gRkVDIGlzIGFib3V0IG1heGltaXNpbmcgZXJyb3IgcmVj b3ZlcnkgYW5kCj4gdGhlcmUKPiA+ID4gPiA+IGFyZSB0b25zIG9mIGVkZ2UgY2FzZXMgdG8gY3Jl YXRlIHNvbWV0aGluZyB0aGF0IHdvcmtzIDI0LzcuCj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJIHNo b3VsZCBoYXZlIGFsc28gc2FpZCB0aGF0IEknbSBob3BpbmcgdGhhdCB0aGlzIGltcGxlbWVudGF0 aW9uCj4gaXMgYW4KPiA+ID4gPiA+ID4gaW5pdGlhbCBvbmUgdGhhdCBwcm92aWRlcyB0aGUgZnVu Y3Rpb25hbGl0eSBmb3IgdGhlIG1vc3QgInNpbXBsZSIKPiA+ID4gPiA+ID4gc2l0dWF0aW9ucyBh bmQgdGhhdCBjb3VsZCBiZSBpbXByb3ZlZCBsYXRlci4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiBUaGUgYmlnZ2VzdCBxdWVzdGlvbiBJIGhhdmUsIGlzIGhvdyBkbyB5b3UgZGVjaWRlIHRvIHNj aGVkdWxlCj4gcGFja2V0cz8gSW4gdGhlIEZFQyBzcGVjLCB0aGUgaW5jb21pbmcgc3RyZWFtcyBh cmUgQ0JSIHNvIHRoZSBtYXRyaXgKPiBkdXJhdGlvbiBpcyBmaXhlZC4gU28gaWYgdGhlcmUgaXMg cGFja2V0IGxvc3MgeW91IGtub3cgd2hlbiB0byBzY2hlZHVsZSB0aGUKPiBvdXRwdXQgcGFja2V0 cyBiZWNhdXNlIHRoZSBsYXRlbmN5IGlzIGZpeGVkLiBCdXQgaW4gRkZtcGVnIHlvdSBkb24ndCBr bm93Cj4gdGhlIGluY29taW5nIHN0cmVhbXMgYXJlIENCUiwgbm9yIGRvIHlvdSBoYXZlIGEgY29u Y2VwdCBvZiB0aW1lLiBNaW4gYW5kCj4gbWF4IHBhY2tldHMgaXMgY29tcGxldGUgZ3Vlc3N3b3Jr IGluIGEgVkJSIHN0cmVhbSBhbmQgdGhlIGNvZGUgdGFrZXMgYQo+IGJ1cnN0eSBzdHJlYW0gYW5k IG1ha2VzIGl0IGV2ZW4gbW9yZSBidXJzdHkuIEFuZCB5b3Ugb2YgY291cnNlIGRlc3Ryb3kgdGhl Cj4gQ0JSIG5hdHVyZSBvZiBhIHZhbGlkIEZFQyBzdHJlYW0uCj4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiBUaGUgb3RoZXIgdGhpbmcgdGhhdCdzIGRpZmZpY3VsdCBpcyBoYW5kbGluZyBhIGNo YW5nZSBpbgo+IHN0cmVhbSB3aXRob3V0IGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcCBhbmQga2Vl cGluZyBGRUMgYmVoYXZpb3VyCj4gSGV1cmlzdGljcyBhcmUgbmVlZGVkIGZvciB0aGlzLgo+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSXQncyBub3QgY2xlYXIgZnJvbSB5b3VyIGNvZGUgaG93 IHlvdSBoYW5kbGUgdGhlIG1hdHJpeAo+IHJlY3Vyc2lvbi4gaS5lIHRoZSBmYWN0IHlvdSByZWNv dmVyZWQgb25lIHBhY2tldCBhbGxvd3MgeW91IHRvIHJlcnVuIHRoZQo+IHJlY292ZXJ5IGFuZCBw b3RlbnRpYWxseSByZWNvdmVyIG1vcmUgZnJvbSBhIGRpZmZlcmVudCBjb2x1bW4vcm93Lgo+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiBUaGUgd2F5IHRoZSBhbGdvcml0aG0gd29ya3MgaXM6Cj4gPiA+ ID4gPiA+ICogU3RhcnQgYnkgYnVmZmVyaW5nIGFuIGluaXRpYWwgYW1vdW50IG9mIHBhY2tldHMK PiA+ID4gPiA+Cj4gPiA+ID4gPiBCdXQgeW91IGhhdmUgcGFja2V0IGxvc3Mgc28gdGhpcyBudW1i ZXIgcmVwcmVzZW50cyBhIHZhcmlhYmxlCj4gYW1vdW50IG9mIHRpbWUuCj4gPiA+ID4gPgo+ID4g PiA+ID4gPiAqIFJlYWQgYWxsIGF2YWlsYWJsZSBGRUMgcGFja2V0cyBvbiBlYWNoIFJUUCBwYWNr ZXQgcmVhZCwKPiBrZWVwaW5nIGEKPiA+ID4gPiA+ID4gbWF4IG51bWJlciBvbiBlYWNoIGF4aXMK PiA+ID4gPiA+ID4gKiBPbiBmaXJzdCBtaXNzaW5nIHBhY2tldCwga2VlcCByZWFkaW5nIGFkZGl0 aW9uYWwgUlRQIHBhY2tldHMKPiBhbmQ6Cj4gPiA+ID4gPiA+ICAgLSBUcnkgdG8gcmVjb25zdHJ1 Y3QgdXNpbmcgdGhlIHBhY2tldCByb3cgaWYgYXZhaWxhYmxlCj4gPiA+ID4gPiA+ICAgLSBPciBl bHNlLCB0cnkgdG8gcmVjb25zdHJ1Y3QgdXNpbmcgdGhlIHBhY2tldCBjb2x1bW4gaWYKPiBhdmFp bGFibGUKPiA+ID4gPiA+ID4gICAtIE9yIGVsc2UsIHRyeSB0byByZWNvbnN0cnVjdCB1c2luZyB0 aGUgd2hvbGUgRkVDIG1hdHJpeCBpZgo+IGJvdGggYXJlIGF2YWlsYWJsZQo+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiBJbiB0aGlzIG1hdHJpeCByZWNvbnN0cnVjdGlvbiBwaGFzZSwgd2Uga2VlcCBs b29waW5nIG9uIHRoZSByb3dzCj4gYW5kCj4gPiA+ID4gPiA+IGNvbHVtbnMgb2YgdGhlIG1hdHJp eCB3aGlsZSBhdCBsZWFzdCBvbmUgcGFja2V0IGlzCj4gcmVjb25zdHJ1Y3RlZC4gV2UKPiA+ID4g PiA+ID4gYWxzbyByZXR1cm4gaW1tZWRpYXRlbHkgaWYgdGhlIG1pc3NpbmcgcGFja2V0IGhhcyBi ZWVuCj4gcmVjb25zdHJ1Y3RlZC4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSWYgdGhlIHBhY2tl dCBjYW5ub3QgYmUgcmVjb25zdHJ1Y3RlZCwgd2Uga2VlcCByZWFkaW5nIHBhY2tldHMKPiBhbmQK PiA+ID4gPiA+ID4gdHJ5aW5nIHRoaXMgYWxnb3JpdGhtLiBXaGVuIHRoZSBtYXggbnVtYmVyIG9m IHBhY2tldHMgaXMKPiByZWFjaGVkLCB3ZQo+ID4gPiA+ID4gPiBjb25zaWRlciB0aGlzIHBhY2tl dCB1bnJlY292ZXJhYmxlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFdoYXQgYWJvdXQgb3V0IG9mIG9y ZGVyIHBhY2tldHM/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJZiB5b3UgYWRqdXN0IHRoZSBtYXgg bnVtYmVyIG9mIHBhY2tldHMgd2VsbCwgdGhpcyBtYWtlcyBzdXJlCj4gdGhhdCB3ZQo+ID4gPiA+ ID4gPiAob3B0aW1pc3RpY2FsbHkpIGtlZXAgb25lIEZFQyBtYXRyaXggZm9yd2FyZCBmcm9tIHRo ZSBwYWNrZXQuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFdoZW4gYSBwYWNrZXQgaXMgcmV0dXJu ZWQsIHdlIGxvb2sgYXQgdGhlIG5leHQgcGFja2V0J3MKPiBjb3JyZXNwb25kaW5nCj4gPiA+ID4g PiA+IEZFQyByb3cgYW5kIGNvbHVtbiBwYWNrZXRzLiBJZiB3ZSBoYXZlIGJvdGgsIHdlIGtub3cg ZXhhY3RseSB0aGUKPiBpbmRleAo+ID4gPiA+ID4gPiBvZiB0aGUgZmlyc3QgcGFja2V0IGluIHRo ZSBjdXJyZW50IHBhY2tldCdzIEZFQyBtYXRyaXggYW5kIHdlCj4gZHJvcCBhbGwKPiA+ID4gPiA+ ID4gb25lcyBiZWZvcmUgdGhhdCAoUlRQIGFuZCBGRUMpLiBPdGhlcndpc2UsIHdlIGtlZXAgYSB3 aG9sZQo+IGNvbHVtbiB4Cj4gPiA+ID4gPiA+IHJvdyBtYXRyaXggYmVmb3JlIHRoZSBwYWNrZXQu Cj4gPiA+ID4gPgo+ID4gPiA+ID4gU28gdGhpcyBiYXNpY2FsbHkgYnVyc3RzIHBhY2tldHMgYmVj YXVzZSB5b3UgZG9uJ3QgYWNjb3VudCBmb3IKPiBwYWNrZXQKPiA+ID4gPiA+IGxvc3MgaW4geW91 ciBidWZmZXJlZCBwYWNrZXQgc2l6ZXMsIG5vciBDQlIgdnMgVkJSLgo+ID4gPiA+ID4gQXMgSSBz YWlkLCBpZiB5b3Ugc3RvcCBhbmQgc3RhcnQgdGhlIGVuY29kZXIgdGhpcyBpbXBsZW1lbnRhdGlv bgo+IHdpbGwKPiA+ID4gPiA+IGFsbW9zdCBjZXJ0YWlubHkgaW5maW5pdGUgbG9vcCBhbmQvb3Ig Y3Jhc2guCj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEkgYWxzbyBxdWVzdGlvbiB0aGUgbmVlZCBm b3IgRkVDIGluIDIwMjUuIEkgYW0gaGFwcHkgdG8gc2VlCj4gdGhpcyBhd2Z1bCBwcm90b2NvbCBn b25lIGFuZCBhbSBub3Qgc3VyZSBtYWludGFpbmluZyBzb21ldGhpbmcgbGlrZSB0aGlzIGlzCj4g cG9zc2libGUgaW4gRkZtcGVnIGFwYXJ0IGZyb20gdXNlIGNhc2VzIHdoZXJlIGxhdGVuY3kgZG9l c24ndCBtYXR0ZXIgKHNvCj4gd2h5IHVzZSBGRUM/KS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g VGhlIFJhZGlvIEZyYW5jZSBwZW9wbGUgaGF2ZSBhIHJlYWwgcHJvYmxlbSB3aXRoIHBhY2tldCBs b3NzIGluCj4gdGhlaXIKPiA+ID4gPiA+ID4gUlRQIHN0cmVhbXMuCj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+IFRoZSByYXRlIG9mIHBhY2tldCBsb3NzIHNlZW1zIHRvIGJlIGxvdyBlbm91Z2ggc28g dGhhdCB0aGlzCj4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uIHdvdWxkIHdvcmsganVzdCBmaW5l Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IFllcyBidXQgRkZtcGVnIGNvZGUgbmVlZHMgdG8gd29yayBp biB0aGUgcmVhbCB3b3JsZCwgbm90IGp1c3QgZm9yCj4geW91cgo+ID4gPiA+ID4gb25lIGN1c3Rv bWVyLgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhlaXIgaGFyZHdhcmUgZW5jb2RlcnMgaGF2ZSBz dXBwb3J0IGZvciBGRUMgZW5jb2Rpbmcgc28gdGhpcwo+IHNlZW1zCj4gPiA+ID4gPiA+IGxpa2Ug YSByZWFsIHVzZSBhbmQgYmVuZWZpdCByaWdodCB0aGVyZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBU aGVyZSBhcmUgc28gbXVjaCBtb3JlIG1vZGVybiB0ZWNobm9sb2dpZXMgdGhhdCBhcmUgdmFzdGx5 IGVhc2llcgo+IHRvCj4gPiA+ID4gPiBpbXBsZW1lbnQuIFdlIGhhdmUgbGVhcm50IGluIHRoZSBs YXN0IHR3ZW50eSB5ZWFycy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBIYXZlIHlvdSB0ZXN0ZWQgdGhp cyBpbXBsZW1lbnRhdGlvbiB3aXRoIGlwdGFibGVzIG9yIHRjPyBZb3UnbGwgc2VlCj4gPiA+ID4g PiBpdCdzIHZlcnkgZGlmZmljdWx0IHRvIGNyZWF0ZSBhIHN0YWJsZSBpbXBsZW1lbnRhdGlvbiB0 aGF0IGRvZXNuJ3QKPiA+ID4gPiA+IGluZmluaXRlIGxvb3AgYXMgd2VsbCBhcyBzdXJ2aXZlcyBh biBlbmNvZGVyIHJlc3RhcnQuCj4gPiA+ID4gPiBJIHdvdWxkIHN1Z2dlc3QgcHV0dGluZyB0aGlz IG9uIGEgcmVhbCBkb21lc3RpYyBpbnRlcm5ldCBjb25uZWN0aW9uCj4gPiA+ID4gPiB3aGVyZSBp dCdzIHZlcnkgaGFyZCB0byBjcmVhdGUgYSBzdGFibGUgaW1wbGVtZW50YXRpb24uCj4gPiA+ID4K PiA+ID4gPiBIaSwKPiA+ID4gPgo+ID4gPiA+IFdoaWxlIEkgYXBwcmVjaWF0ZSB5b3VyIGZlZWRi YWNrLCBJIHdvbmRlciBhYm91dCB0aGUgbmVlZCB0byBiZQo+ID4gPiA+IGNvbWJhdGl2ZSBsaWtl IEkgcGVyY2VpdmUgaGVyZS4KPiA+ID4KPiA+ID4gQmVjYXVzZSBpbiB0aGUgZW5kIHdyaXRpbmcg c29tZXRoaW5nIGZvciB5b3VyIHNpbXBsZSBjYXNlIGFuZAo+ID4gPiBkaXNhcHBlYXJpbmcsIEZG bXBlZyB3aWxsIGdldCB0aGUgYmxhbWUgZm9yIHRoaW5ncyBub3QgYmVpbmcgZ29vZC4KPiA+ID4g U2FtZSB3aXRoIEZGbXBlZyBzdXBwb3J0aW5nIGNvbXBsZXggcHJvdG9jb2xzIFdlYlJUQywgU0RS IGV0YyBldGMuCj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBBdCB0aGUgZW5kIG9mIHRoZSBkYXksIHdl IGFyZSBsb29raW5nIGF0IGEgcHJvYmFiaWxpc3RpYyBwcm9ibGVtCj4gPiA+ID4gKGNvbm5lY3Rp dml0eSBpc3N1ZXMpLgo+ID4gPiA+Cj4gPiA+ID4gSnVzdCBsaWtlIHRoZSBwcm9ibGVtLCB0aGUg c29sdXRpb24gaXMgcHJvYmFiaWxpc3RpYyBieSBuYXR1cmUuIEluCj4gPiA+ID4gc29tZSBjYXNl cywgaXQgd2lsbCBiZSBhYmxlIHRvIHJlY292ZXIgc29tZSBwYWNrZXRzIGJ1dC4gZm9yIHNvbWUs IGl0Cj4gPiA+ID4gd2lsbCBub3QuCj4gPiA+ID4KPiA+ID4gPiBFdmVuIGlmIGl0IGRvZXMgbm90 IGNvdmVyIGFsbCBjb3JuZXIgY2FzZXMsIHRoaXMgaW1wbGVtZW50YXRpb24gZG9lcwo+IGhlbHAu Cj4gPiA+ID4KPiA+ID4gPiBJIGhhdmUgdGVzdGVkIGl0IHdpdGggc3RpbXVsYXRlZCBuZXR3b3Jr IGlzc3VlcyBhbmQgZm91bmQgaXQgdG8gYmUKPiA+ID4gPiBhYmxlIHRvIHJlc3RvcmUgbW9zdCBw YWNrZXRzIGV2ZW50IGF0IDEwIG9yIDIwJSBwYWNrZXQgZHJvcHMuCj4gPiA+ID4KPiA+ID4gPiBJ IGhhdmUgYWxzbyB0ZXN0ZWQgaXQgd2l0aCBhIGJhZCBsb2NhbCBicm9hZGJhbmQuCj4gPiA+ID4K PiA+ID4gPiBXZSBwbGFuIG9uIHRlc3RpbmcgaXQgbW9yZSB3aXRoIGEgY29uY3JldGUgcHJvYmxl bSBhbmQgaGFyZHdhcmUKPiBlbmNvZGVycy4KPiA+ID4gPgo+ID4gPiA+IEluIG15IGV4cGVyaWVu Y2UsIGV4cGVyaWVuY2VkIHNvZnR3YXJlIGVuZ2luZWVyIHRocml2ZSB0byBwcm9wb3NlCj4gZGVh ZAo+ID4gPiA+IHNpbXBsZSBjb2RlIHRoYXQgaXMgZ29vZCBlbm91Z2ggdG8gc29sdmUgdGhlIHBy b2JsZW1zIHRoYXQgaXQKPiA+ID4gPiBhZGRyZXNzZXMgaW4gbW9zdCBjYXNlcy4KPiA+ID4KPiA+ ID4gWW91ciBjb2RlIGlzIGhvbmVzdGx5IHdheSB0b28gc2ltcGxpc3RpYyBmb3IgYW4gRkVDIGlt cGxlbWVudGF0aW9uLgo+ID4gPiBUaGVyZSBpcyBhIHJlYXNvbiBvdGhlciBpbXBsZW1lbnRhdGlv bnMgYXJlIG11Y2ggbW9yZSBjb21wbGV4Lgo+ID4gPiBZb3UgaGF2ZSB2YXJpYWJsZSBsYXRlbmN5 ICh1c2VyIGNob29zZXMgdGhlIGJ1ZmZlciBzaXplIGJ5IGhhbmQsCj4gPiA+IHNlcmlvdXNseS4u LiksIGNyZWF0ZSBidXJzdGluZXNzLCBsaWtlbHkgaW5maW5pdGUgbG9vcCB3aXRoIGFuIGVuY29k ZXIKPiA+ID4gcmVzdGFydCBldGMuCj4gPiA+Cj4gPiA+IFdyaXRpbmcgYSBuZXR3b3JrIHByb3Rv Y29sIGlzIGFib3V0IG1ha2luZyBpdCBhcyB0b2xlcmFudCB0byB0aGUgcmVhbAo+ID4gPiB3b3Js ZCBhcyBwb3NzaWJsZSB3aGVyZSBhbGwgc29ydHMgb2YgdGhpbmdzIGhhcHBlbi4KPiA+ID4KPiA+ ID4gPiBBbHNvLCBpbnRlcmZhY2luZyB3aXRoIGxlZ2FjeSBzeXN0ZW1zIGlzIGF0IHRoZSBjb3Jl IG9mIHdoYXQgd2UgZG8KPiA+ID4gPiBiZWNhdXNlIGl0IGRvZXMgc29sdmUgcmVhbCB3b3JsZCBw cm9ibGVtcy4gVGhpcyBwcm9qZWN0IGhhcyBwbGVudHkgb2YKPiA+ID4gPiBzdXBwb3J0IGZvciBs ZWdhY3kgc3lzdGVtcy4KPiA+ID4gPgo+ID4gPiA+IEkgd2lsbCBhZGRyZXNzIHRoZSBlbmNvZGVy IHJlc3RhcnQsIHRoYW5rIHlvdSBmb3IgcG9pbnRpbmcgdGhpcyBvdXQuCj4gSQo+ID4gPiA+IGlt YWdpbmUgdGhhdCB0aGUgU1NSQyBjYW4gYmUgdXNlZCB0byBkZXRlY3QgYSBuZXcgc3RyZWFtIGFu ZAo+ID4gPiA+IGJ1bXAvcmVzZXQgcGFja2V0cyBpbmRleGVzLgo+ID4gPgo+ID4gPiBTU1JDIGlz IG1hbmRhdGVkIHRvIGJlIDAgc28gaXQgY2FuJ3QgYmUgdXNlZC4KPiA+ID4KPiA+ID4gUmVnYXJk cywKPiA+ID4gS2llcmFuIEt1bmh5YQo+ID4KPiA+IEkgd291bGQgc2VyaW91c2x5IGxvb2sgYXQg YSBzb3BoaXN0aWNhdGVkIEZFQyBpbXBsZW1lbnRhdGlvbiB0aGF0Cj4gPiBkb2Vzbid0IHJlcXVp cmUgdGhlIHVzZXIgdG8gaW5wdXQgdGhlIG1hdHJpeCBzaXplLCBoYXMgYSBsb3cgYW5kCj4gPiBj b25zdGFudCBsYXRlbmN5LCBoYW5kbGVzIHJlb3JkZXJlZCBwYWNrZXRzIGFuZCBpcyB0b2xlcmFu dCB0byBlbmNvZGVyCj4gPiByZXN0YXJ0czoKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9VcGlwZS91 cGlwZS9ibG9iL21hc3Rlci9saWIvdXBpcGUtdHMvdXBpcGVfcnRwX2ZlYy5jCj4KPiBJJ20ganVz dCBnZXR0aW5nIHRvIGxvb2sgYXQgdGhhdC4KPgo+IElzIHRoZSBmZm1wZWcgUlRQIGlucHV0IGN1 cnJlbnRseSBzdXBwb3NlZCB0byByZWNvdmVyIGZyb20gYW4gZW5jb2Rlcgo+IHJlc3RhcnQ/Cj4K PiBJIGRpZDoKPiAqIFN0YXJ0IGEgUlRQIG91dHB1dDoKPgo+IGZmbXBlZyAtaSAuLi4gcnRwOi8v Li4uCj4KPiAqIFN0YXJ0IGEgUlRQIGlucHV0IHJlYWRpbmcgZnJvbSB0aGUgaW5wdXQ6Cj4KPiBm Zm1wZWcgLWkgcnRwOi8vLi4uIC4uLgo+Cj4gKiBTdG9wIGFuZCBzdGFydCB0aGUgUlRQIGlucHV0 IHByb2Nlc3MKPgo+IEFmdGVyIHRoYXQsIHRoZSBydW5uaW5nIGZmbXBlZyBpbnN0YW5jZSBrZWVw cyBkcm9wcGluZyBwYWNrZXRzOgo+Cj4gW3J0cCBAIDB4MTRhODA0MjAwXSBSVFA6IGRyb3BwaW5n IG9sZCBwYWNrZXQgcmVjZWl2ZWQgdG9vIGxhdGUwLjIxNXgKPiAgICAgTGFzdCBtZXNzYWdlIHJl cGVhdGVkIDcgdGltZXMKPgo+IElmIGZmbXBlZyBSVFAgaW5wdXQgaXMgbm90IGFibGUgdG8gcmVj b3ZlciBmcm9tIGFuIGVuY29kZXIgcmVzdGFydCwgSQo+IGRvbid0IHRoaW5rIGFkZGluZyBzdXBw b3J0IGZvciB0aGF0IGluIHRoZSBGRUMgZGVjb2RlciB3aWxsIGhlbHAuCj4KPiAtLSBSb21haW4K PgoKVGhlcmUgeW91IGdvLCB0aGUgb25seSB3YXkgdG8gcmVjb3ZlciBmcm9tIHJlYWwgd29ybGQg aXNzdWVzIGlzIHRvIHVzZQpoZXVyaXN0aWNzLi4uCgpLaWVyYW4KCj4KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlz dApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0 aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBl bWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJz Y3JpYmUiLgo=