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 6548247332 for ; Sat, 4 Nov 2023 20:33:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AD71368CE81; Sat, 4 Nov 2023 22:33:53 +0200 (EET) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 54ED468CE2A for ; Sat, 4 Nov 2023 22:33:47 +0200 (EET) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id C4FFE1060148 for ; Sat, 4 Nov 2023 20:33:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1699130026; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=dR1nQ05C4gjKlOTJDt+PvJQB+TLqvmKoPFmyv4uHqgI=; b=RTU1JN03x3FmLECFBw8h+VcDel20KpJ4lrlSZQuLtg+bJ5VIuyWMyHQIfIkAoiHT Yrenu6xRsWt0mYVpOJ4A6ISs4WLJtJqr1j77iQJT6XBCR4i6PZQHHzCmCsgqlLzMtD9 GJdhCtaU+FcozBEGAy9wYdOq/+Ffa6XUie4HEHIihkUH0E6wlzf4jFeAAyk3eax8Hfp lYpEx8PN/wYfHGkolvJhahLSzKUzUquWkNn8cN44RfFkOe2WWRwJ/8MMP+CZwgXPtnr cxANHJnyhgieQwjavfqxJAhsOT4W4emwA8kcN7J11QVLNCBgKDOd1njVbVr9P8oCjdA beUlVGlz8A== Date: Sat, 4 Nov 2023 21:33:46 +0100 (CET) From: Lynne To: FFmpeg development discussions and patches Message-ID: In-Reply-To: <1e243762-a5bf-4374-a39f-3ed846caa4d5@gmail.com> References: <1e243762-a5bf-4374-a39f-3ed846caa4d5@gmail.com> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH 1/2] decode: add ff_decode_skip_samples function 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-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: Tm92IDQsIDIwMjMsIDE3OjIyIGJ5IGRlcmVrLmJ1aXRlbmh1aXNAZ21haWwuY29tOgoKPiBIaSwK Pgo+IEknbSBnb2luZyB0byBvcGluZSBhIGJpdCBoZXJlLCBhbmQgYWxzbyBjb21tZW50IG9uIHRo ZSBtb3YvTVA0IHBhdGNoWzBdIHRoYXQgYWNjb21wYW5pZXMKPiB0aGlzIHNldC4KPgo+IFRoaXMg aXMgZm9yIGJvdGggaGlzdG9yaWNhbCBwdXJwb3NlcywgYW5kIHRvIGRpc3RpbGwgSVJDIGxvZ3Mg aW50byBzb21ldGhpbmcgbW9yZQo+IGRpZ2VzdGlibGUgZm9yIG90aGVycyBvbiB0aGUgbGlzdCB0 byBnYWluIGNvbnRleHQgb24gdGhlIGlzc3VlLCBzbyBhcG9sb2dpZXMgZm9yCj4gcmUtdHJlYWRp bmcgZ3JvdW5kLgo+Cj4gT24gMTAvMzAvMjAyMyA1OjA5IEFNLCBMeW5uZSB3cm90ZToKPgo+PiBU aGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24sIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGJlIGNh bGxlZCBieSBkZWNvZGVycwo+PiBuZWVkaW5nIHRvIHNraXAgc2FtcGxlcyBldmVyeSB0aW1lLgo+ PiBJdCBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYW5kIGluY3JlbWVudHMgc2lkZSBkYXRhLgo+Pgo+ PiBUaGUgaWRlYSBpcyB0byBnZXQgcmlkIG9mIHNraXBfc2FtcGxlcyBldmVudHVhbGx5IGFuZCBy ZXBsYWNlIGl0IHdpdGggdGhpcwo+PiBmdW5jdGlvbi4KPj4KPgo+IFNvIHRoZXJlIGlzIGEgbG90 IHRvIGNvdmVyIGhlcmUsIGFuZCAgbG90IG9mIG51YW5jZSB0byBob3cgdGhpbmdzIHNob3VsZCBi ZSBoYW5kbGVkLAo+IHRoYXQgSSB3YW50IHRvIGxpc3Qgb3V0LCBiZWZvcmUgZGlzY3Vzc2luZyB0 aGUgc3BlY2lmaWMgY2hhbmdlcyBvZiB0aGVzZSB0d28gc2V0cyBvZgo+IHBhdGNoZXMuIEEgYml0 IG9mIG9mIGEgJ3N0YXRlIG9mIHRoZSB3b3JsZCcuCj4KPiBUaGUgZ29hbCBvZiB0aGlzIHBhdGNo c2V0IHNlZW1zIHRvIGJlIHRvIGFpZCBpbiBnYXBsZXNzIHBsYXliYWNrIGFuZCBjb3JyZWN0IHNl ZWtpbmcKPiBpbiBBQUMgc3RyZWFtcyAob3IgbGF0ZXIsIG1vcmUgZ2VuZXJhbGx5IE1EQ1Qtc3R5 bCBhdWRpbyBjb2RlY3MgaW4gZ2VuZXJhbCksIGJ1dCBwcm9wZXJseQo+IHNraXBwaW5nIGluaXRp YWwgcHJpbWluZyBzYW1wbGVzICh3aGljaCBpbmNsdWRlIHByZS1yb2xsKSwgcHJlLXJvbGwgKGJv dGggbm9ybWFsLCBhbmQgZXh0cmEKPiBpbmN1cnJlZCBkdWUgdG8gU0JSKSB3aGVuIHNlZWtpbmcs IGFuZCBhbmQsIHRob3VnaCBub3QgY292ZXJlZCBpbiB0aGVzZSBzZXRzLCBJJ2xsIG1lbnRpb24s Cj4gZW5kIHBhZGRpbmcuCj4KPiBGaXJzdCBhIG5vdGUgb24gdGVybWlub2xvZ3k6ICdBbGdvcml0 aG1pYyBkZWxheScgYXMgaXQgaXMgYmVpbmcgdXNlZCBoZXJlIGlzIG5vdCBxdWl0ZQo+IGNvcnJl Y3QsIGZvciB0d28gcmVhc29uczoKPiAgKiBMYXRlbmN5IGFuZCBwcmUtcm9sbCAob3Igcm9sbCBk aXN0YW5jZSkgYXJlIHNlcGFyYXRlIHRoaW5ncy4gT3B1cywgZm9yIGV4YW1wbGUsCj4gIGNhbiBo YXZlIGEgbGF0ZW5jeSBhcyBsb3cgYXMgMi41bXMsIGJ1dCBwcmUtcm9sbCBpcyBhbHdheXMgYXQg bGVhc3QgODBtcyAtIHRoZXkKPiAgYXJlIGRpZmZlcmVudCB0aGluZ3Mgd2hpY2ggc2VydmUgZGlm ZmVyZW50IHB1cnBvc2VzLCBhbmQgSSBjb25maXJtZWQgdGhpcyB3aXRoCj4gIHBlb3BsZSB3aG8g ZGVmaW5pdGVseSBrbm93IG1vcmUgYWJvdXQgYXVkaW8gdGhhbiBtZVsxXS4gUHJlLXJvbGwgaXMg b2Z0ZW4gbGFyZ2VyCj4gIHRoYW4gbGF0ZW5jeSwgYW5kIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGZp bGUgbWV0YWRhdGEgcmVmbGVjdCB0aGlzLgo+CgpBbGdvcml0aG1pYyBkZWxheSBpcyBhbiBpbmR1 c3RyeSBzdGFuZGFyZCB0ZXJtIGZvciB0aG9zZSB0aGF0IGRvIGNvZGVjIHJlc2VhcmNoLAphbmQg aXMgYWNjdXJhdGUuIEFsZ29yaXRobWljIGRlbGF5ID09IHlvdXIgZGVmaW5pdGlvbiBvZiBsYXRl bmN5LgoobGF0ZW5jeSBpcyBub3QgYSB0ZWNobmljYWxseSBjb21wbGV0ZWx5IHZhbGlkIHRlcm0s IGFzIGxhdGVuY3kgaGFzIGJsdXJyeSBkZWZpbml0aW9uCm91dHNpZGUgb2YgcmVhbC10aW1lIHNp dHVhdGlvbnMsIHdoaWNoIGRlY29kaW5nIG1heSBvciBtYXkgbm90IGJlKS4KSXQgaXMgbm90IGVx dWFsIHRvIHByZS1yb2xsLgoKSXQgaXMgYSBjb2RlYy1kZXBlbmRlbnQgdmFsdWUsIGRlZmluZWQg YnkgdGhlIHN1bSBvZiBhbGwgZGVsYXkgdGhhdCBoYXBwZW5zIHdpdGhpbgplYWNoIGFsZ29yaXRo bSAoYmxvY2spIG9mIGEgY29kZWMuCkl0IGlzIGV4YWN0bHkgZGVmaW5lZCB0bzoKwqAtIDEwMjQg c2FtcGxlcyBmb3IgQUFDICgyMS4zzIUgbWlsbGlzZWNvbmRzKSwgZHVlIHRvIHRoZSBNRENUIG92 ZXJsYXAgcHJvY2Vzcy4KwqAtIDEyMCBzYW1wbGVzIGZvciBPcHVzICgyLjUgbWlsbGlzZWNvbmRz KSwgZHVlIHRvIHRoZSBNRENUIG92ZXJsYXAgcHJvY2VzcwrCoC0gMzIwIHNhbXBsZXMgZm9yIFNp cmVuIChHLjcxOSwgNi42zIUgbWlsbGlzZWNvbmRzKSwgZHVlIHRvIHRoZSBNRENUIG92ZXJsYXAg cHJvY2VzcwrCoC0gRXF1YWwgdG8gdGhlIGZyYW1lIHNpemUgZm9yIFZvcmJpcywgZHVlIHRvIGl0 IGhhdmluZyBmbGV4aWJsZSBibG9ja3MuCi0gMTAyNCBzYW1wbGVzIGZvciBBVFJBQzkgKDIxLjPM hSBtaWxsaXNlY29uZHMpLCBkdWUgdG8gdGhlIE1EQ1Qgb3ZlcmxhcCBwcm9jZXNzLgrCoC0gMjU2 IHNhbXBsZXMgZm9yIEFDLTMgKDUuM8yFIG1pbGxpc2Vjb25kcyksIGR1ZSB0byB0aGUgTURDVCBv dmVybGFwIHByb2Nlc3MuCgpRdW90aW5nIGZyb20gYSBmZXcgb2ZmaWNpYWwgZG9jdW1lbnRzOgoK UkZDNjcxNsKgIkRlZmluaXRpb24gb2YgdGhlIE9wdXMgQXVkaW8gQ29kZWMiOgoiVGhlIGludmVy c2UgTURDVCBpbXBsZW1lbnRhdGlvbiBoYXMgbm8gc3BlY2lhbCBjaGFyYWN0ZXJpc3RpY3MuwqAg VGhlIGlucHV0IGlzIE4gZnJlcXVlbmN5LWRvbWFpbiBzYW1wbGVzIGFuZCB0aGUgb3V0cHV0IGlz IDIqTiB0aW1lLWRvbWFpbiBzYW1wbGVzLCB3aGlsZSBzY2FsaW5nIGJ5IDEvMi7CoCBBICJsb3ct b3ZlcmxhcCIgd2luZG93IHJlZHVjZXMgdGhlIGFsZ29yaXRobWljIGRlbGF5LiIKCklTTy9JRUMg MTQ0OTYtMywgdGhlIGJpYmxlIGl0c2VsZiBvbiB0aGUgdmVyeSBwcm9ibGVtIHdlJ3JlIHRyeWlu ZyB0byBzb2x2ZToKIlRvIGVuYWJsZSBjb2Rpbmcgb2YgZ2VuZXJhbCBhdWRpbyBzaWduYWxzIHdp dGggYW4gYWxnb3JpdGhtaWMgZGVsYXkgbm90IGV4Y2VlZGluZyAyMCBtcyBhdCA0OCBrSHosIGl0 IHVzZXMgYSBmcmFtZSBsZW5ndGggb2YgNTEyIG9yIDQ4MCBzYW1wbGVzIChjb21wYXJlZCB0byB0 aGUgMTAyNCBvciA5NjAgc2FtcGxlcyB1c2VkIGluIHN0YW5kYXJkIE1QRUctMi80IEFBQykuIgoK Ry43MTk6CiJUaGUgY29kZWMgb3BlcmF0ZXMgb24gMjAgbXMgZnJhbWVzLCBhbmQgdGhlIGFsZ29y aXRobWljIGRlbGF5IGVuZC10by1lbmQgaXMgNDAgbXMuIFRoZSBlbmNvZGVyIGlucHV0IGFuZCBk ZWNvZGVyIG91dHB1dCBhcmUgc2FtcGxlZCBhdCA0OMKga0h6LiIKKHRoaXMgb25lIGdpdmVzIHRo ZSBhbGdvcml0aG1pYyBkZWxheSBhcyB0aGUgc3VtIG9mIGJvdGggdGhlIGRlY29kZXIgYW5kIHRo ZSBlbmNvZGVyJ3MgZGVsYXlzIGR1cmluZyByZWFsLXRpbWUgb3BlcmF0aW9uKS4KCgo+ICAqIFBy ZS1yb2xsLCBvciByb2xsIGRpc3RhbmNlLCBhcmUgdGhlIGluZHVzdHJ5IHN0YW5kYXJkIHRlcm1z LiBNYWtpbmcgdXAgb3V0IG93bgo+ICB0ZXJtcyBiZWNhdXNlIHdlIGRpc2FncmVlIGlzIHNpbGx5 IGFuZCBzdHViYm9ybiwgYW5kIG1ha2VzIGl0IGhhcmRlciBvbiBBUEkKPiAgdXNlcnMgdHJ5aW5n IHRvIHVzZSB0aGUgQVBJIGNvcnJlY3RseSwgb3IgdW5kZXJzdG5kIG91ciBjb2RlLgo+CgpZb3Ug Y2FsbCBtZSBzaWxseSBhbmQgc3R1YmJvcm4gZm9yIHRyeWluZyB0byB1c2UgYSBzdGFuZGFyZCB0 ZXJtIGZvciBhIG1hdGhlbWF0aWNhbGx5CmRlZmluZWQgdmFsdWUgdXBvbiB3aGljaCB0byBiYXNl IG90aGVyIHZhbHVlcyAoeW91ciBkZWZpbml0aW9uIG9mIHByZS1yb2xsLCB3aGljaCBjb250YWlu cwp0aGUgYWxnb3JpdGhtaWMgZGVsYXkpLCBzbyB0aGF0IHRoZXJlIGlzIG5vIGRpc2FncmVlbWVu dCBpbiB3aGF0IHdlIHRhbGsgYWJvdXQuCkkgZGVmaW5lZCB0aGUgYWxnb3JpdGhtaWMgZGVsYXkg ZWFybGllciBpbiBvdXIgZGlzY3Vzc2lvbiBhbmQgb3V0bGluZWQgdGhlIHJlYXNvbiB0byBkbyBz by4KQW5kIGRpc2FncmVlbWVudCBpbiB3aGF0IHdlIHRhbGsgYWJvdXQgaXMgZXhhY3RseSB3aGF0 IGhhcHBlbmVkLgoKV2l0aCB0aGF0IG91dCBvZiB0aGUgd2F5LCBJIHdpbGwgbm90IHN0b3AgY2Fs bGluZyB3aGF0IEkgaGF2ZSBqdXN0IGRlZmluZWQgYXMgYWxnb3JpdGhtaWMgZGVsYXkuCk5vciB3 aWxsIEkgd2FudCBhbiBleHBsYW5hdGlvbiBvbiB3aHkgYWZ0ZXIgc2F5aW5nIGFsZ29yaXRobWlj IGRlbGF5IHNvIG1hbnkgdGltZXMsIHlvdQprZWVwIHJlYWRpbmcgcHJlLXJvbGwsIGFuZCB5b3Ug a2VlcCB0cnlpbmcgdG8gaW50ZXJwcmV0IGV2ZXJ5IHZhbHVlIGFzIHByZS1yb2xsLCBldmVuCmlu IHRoZSBjaGF0IGxvZyB5b3UgcG9zdGVkLgoKTm93LCBsZXQgbWUgYmVnaW4gYnkgZGVmaW5pbmcg dGhhdCB0aGUgYW1vdW50IG9mIHNhbXBsZXMgeW91IGhhdmUgdG8gbmVjZXNzYXJpbHkgc3RyaXAK ZnJvbSBhbnkgTURDVC1iYXNlZCBhdWRpbyBjb2RlYyBhdCB0aGUgc3RhcnQgaXMgZXhhY3RseSBl cXVhbCB0byBpdHMgYWxnb3JpdGhtaWMgZGVsYXkuCioqSW5jbHVkaW5nIE9wdXMqKi4KVGhlIG91 dHB1dCBhdWRpbyBzaWduYWwgd2lsbCBiZSB0aW1pbmctYWNjdXJhdGUgY29tcGFyZWQgdG8gdGhl IGlucHV0IHNpZ25hbCwKYXMgbG9uZyBhcyB0aGUgZW5jb2RlciBkaWQgbm90IGFkZCBhbnkgZXh0 cmEgc2FtcGxlcy4KCkNvbnRpbnVpbmcsIGxldCBtZSBkZWZpbmUgdGhlIGV4YWN0IG51bWJlciBv ZiBzYW1wbGVzIHRoYXQgaGF2ZSB0byBiZSBzdHJpcHBlZApmcm9tIGFueSBNRENULWJhc2VkIGF1 ZGlvIGNvZGVjIGFmdGVyIGEgc2VlayBpcyBhbHNvIGV4YWN0bHkgZXF1YWwgdG8gaXRzIGFsZ29y aXRobWljIGRlbGF5LgoqKkluY2x1ZGluZyBPcHVzKiosIGluIGNhc2UgdGhlIGVuY29kZXIgc2ln bmFscyB0aGF0IGVhY2ggY29hcnNlIGVuZXJneSB2YWx1ZSBpcwppbmRlcGVuZGVudCBhbmQgbm90 IGRlbHRhL2ludGVyL2RpZmZlcmVudGlhbGx5IGNvZGVkLgoKRW5kIG9mIG1hdGhlbWF0aWNhbGx5 IGRlZmluZWQgdmFsdWVzLgoKSW4gY2FzZSB0aGUgZW5jb2RlciBzaWduYWxzIHRoYXQgY29hcnNl IGVuZXJneSBsZXZlbHMgYXJlIHRvIGJlIHNpZ25hbGVkIGFzIGRlbHRhcyBiZXR3ZWVuCmVhY2gg ZnJhbWUsIHRoZSBhbW91bnQgb2YgZnJhbWVzIG5lZWRlZCB2YXJpZXMsIGFzIGVhY2ggdmFsdWUg d2lsbCwgYXMgYSByZXN1bHQgb2YgYSBndWlkZWQKcmFuZG9tIHdhbGssIGNvbnZlcmdlIHRvIHRo ZSBlbmNvZGVyJ3MgdmFsdWUgY2xvc2VyIG92ZXIgZWFjaCBmcmFtZS4KVGhlIHRocmVzaG9sZCBm b3Igd2hpY2ggb25lIGRlY2lkZXMgdGhhdCB0aGUgdmFsdWUgaXMgY2xvc2UgZW5vdWdoIGlzIFNV QkpFQ1RJVkUsIGFuZCBhbHNvCnZhcmllcyBub3Qgd2l0aCB0aW1lLCBidXQgd2l0aCBudW1iZXIg b2YgZnJhbWVzLiBPcHVzIHN1cHBvcnRzIHZhcmlhYmxlIGZyYW1lIHNpemVzLgpTb21lIG1heSBn ZW5lcmFsbHkgc3RhdGUgdGhhdCB0aGUgYW1vdW50IG9mIHRpbWUgbmVlZGVkIGZvciBjb252ZXJn ZW5jZSBhdCAyMCBtaWxsaXNlY29uZApmcmFtZXMgaXMgODAgbWlsbGlzZWNvbmRzICg0IHBhY2tl dHMpLCBidXQgaWYgdGhlIGZyYW1lIHNpemUgdGhlIGVuY29kZXIgdXNlcyBhcmUgMi41IG1pbGxp c2Vjb25kcywKdGhlbiBhIG11Y2ggbG93ZXIgYW1vdW50IG9mIHRpbWUgd291bGQgYmUgbmVlZGVk IHRvIGdldCBhIHN1YmplY3RpdmVseSBpZGVudGljYWwgbGV2ZWwgb2YKY29udmVyZ2VuY2UsIHBl cmhhcHMgNiBmcmFtZXMgKDE0IG1pbGxpc2Vjb25kcykuCkkga2VlcCBzYXlpbmcgc3ViamVjdGl2 ZSwgYXMgdGhlcmUgaXMgbm8gZXhhY3QgbWF0aGVtYXRpY2FsIGRlZmluaXRpb24gZm9yIHdoZW4g dGhlIGNvYXJzZQplbmVyZ3kgbGV2ZWxzIGNvbnZlcmdlIHRvIGV4YWN0bHkgdGhlIGxldmVscyB0 aGUgZW5jb2RlciBoYXMuIElmIGEgc3BlY2lhbGx5IGNyYXRlZCBzdHJlYW0gaXMKdXNlZCwgdGhp cyBjb3VsZCBiZSBndWFyYW50ZWVkIHRvIG5ldmVyIGhhcHBlbiwgZXZlbiB3aXRoaW4gd2hhdCBJ J3ZlIGJlZW4gcmVmZXJyaW5nIHRvCmFzIGEgc3ViamVjdGl2ZSB0aHJlc2hvbGQuClRoaXMgaXMg ZnJvbSBzb21lb25lIHdobyBrbm93cyBtb3JlIGFib3V0IE9wdXMgdGhhbiBhbnlvbmUgZWxzZSBl eGNlcHQgbWF5YmUgdGhvc2UKd2hvIGNyZWF0ZWQgaXQuCgpBbGxvdyBtZSB0byBkZWZpbmUgcHJl LXJvbGwgd2l0aCBhIGRlZmluaXRpb24gdGhhdCBtYXRjaGVzIHlvdXJzOgpQcmUtcm9sbCBzaGFs bCBiZSBhbnkgYW1vdW50IG9mIHNhbXBsZXMgbmVlZGVkIHRvIGJlIHNraXBwZWQgYXQgdGhlIHN0 YXJ0IG9mIGRlY29kaW5nLAphbmQgaXQgc2hhbGwgbm90IGJlIGxvd2VyIHRoYW4gdGhlIGFsZ29y aXRobWljIGRlbGF5LgpQcmUtcm9sbCBzaGFsbCBjb250YWluIGFueSBhZGRpdGlvbmFsIGVuY29k ZXItc2lkZSBpbmR1Y2VkIGRlbGF5LgoKCj4gTmV4dCwgYSBxdWljayBicmVha2Rvd24gb2YgdGhl IEFBQyBzaXR1YXRpb24sIGluIHRlcm1zIG9mIGJvdGggaG93IHRoaXMgaXQgaXMgc3RvcmVkLAo+ IHdoYXQgd2Ugc3VwcG9ydCwgYW5kIHRoZSBzdGF0ZSBvZiB0aGUgZWNvc3lzdGVtIGFuZCB0eXBl cyBvZiBmaWxlcyB0aGF0IGV4aXN0Ogo+ICAqICdSYXcnIEFEVFMgc3RyZWFtcyBoYXZlIG5vIHdh eSB0byBzdG9yZSBhbnkgb2YgdGhpcy4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGd1ZXNzCj4gIHRo ZSBwcmUtcm9sbC4gV2Ugc2hvdWxkIG5vdCBndWVzcyBwcmltaW5nIG9yIGVuZCBwYWRkaW5nLCBh cyBubyBtYXR0ZXIgd2hhdCB3ZSBkbywKPiAgaXQnbGwgYmUgd3JvbmcsIGFuZCBhbnkgdmFsdWUg d2lsbCBiZSBhIGNhcmdvIGN1bHRlZCBoYWNrIHZhbHVlLgo+CgpUaGUgYW1vdW50IG9mIHNhbXBs ZXMgdG8gc3RyaXAgb2ZmLCB3b3VsZCBiZSwgYW5kIHRvIG1hdGNoCipldmVyeSBvdGhlciBjb2Rl YyB3ZSBoYXZlKiwgd291bGQgYmUgMTAyNCwgdGhlIGFsZ29yaXRobWljIGRlbGF5LgpUaGUgZXhh Y3QgbWF0aGVtYXRpY2FsbHkgZGVmaW5lZCBleHRyYSBhdWRpbyBzYW1wbGVzIHRoZSBkZWNvZGVy IHByb2R1Y2VzLgpJIHdpbGwgbm90IGFjY2VwdCBjYWxsaW5nIHRoaXMgYSAiY2FyZ28gY3VsdGVk IGhhY2sgdmFsdWUiLiBJdCBpcywgYXMgSSBkZW1vbnN0cmF0ZWQgZWFybGllciwKYW4gZXhhY3Rs eSBkZWZpbmVkIHZhbHVlIHRoYXQgeW91IGNhbiBsZWFybiBieSByZWFkaW5nIHRoZSBzcGVjLgpJ dCBpcyBub3QgYSBndWVzcywgaXQgaXMgYSBndWFyYW50ZWUuIEl0IGlzIGEgZ3VhcmFudGVlLCB0 aGF0IGFueSBjb2RlYyB3aGljaCBkb2VzIG5vdAppbnNlcnQgYW55IGV4dHJhIHNhbXBsZXMgb2Yg cGFkZGluZywgd2lsbCBtZWV0LCBhbmQgdGhlIHJlc3VsdCB3aWxsIGJlIHRoYXQsIGNvbXBhcmVk IHRvCnRoZSBpbnB1dCBzaWduYWwgcHJlLWVuY29kaW5nLCBubyBzYW1wbGVzIHdpbGwgYmUgcHJl c2VudCBhdCB0aGUgc3RhcnQuClRoaXMgaXMgbm90IGEgZmFudGFzeSwgdGhpcyBpcyBhIHJlYWxp dHkgd2hlbiB1c2luZyBvdXIgYWFjIGVuY29kZXIuCgoKPiAgKiBNUDQgLSB0aGVyZSBhcmUgdHdv IHBsYWNlcyB0byBzdG9yZSB0aGlzIG1ldGFkYXRhIC0gb25lIHN0YW5kYXJkLCBhbmQgb25lIHBy b3ByaWV0YXJ5Cj4gIEFwcGxlIHdheS4gVGhlcmUgYXJlLCBzZXBhcmF0ZWx5LCB0d28gd2F5cyB0 byBzaWduYWwgcHJpbWluZyBsZW5ndGggd2hlbiBTQlIgaXMgcHJlc2VudC4KPgoKSSB3b3VsZCBs aWtlIHRvIGFkZCB0aGF0IHRoZXJlIGlzIGEgdGhpcmQgd2F5IC0gdGhhdCBub3RoaW5nIGlzIHNp Z25hbGxlZC4gR2l2ZW4gd2hhdCB5b3UgaGF2ZQpzYWlkIGFib3V0IE1QNCB0aW1lbGluZXMsIHRo b3NlIHJlcXVpcmUgdGhhdCBub3RoaW5nIGlzIHN0cmlwcGVkIG9mZiBmcm9tIGF1ZGlvIGRhdGEu CkZyb20gbXkgcG9pbnQgb2YgdmlldywgdGhpcyBpcyBhIHNwZWNpYWwgY2FzZSwgbm90IGEgZ2Vu ZXJhbCBjYXNlIHZhbGlkIGZvciBhbGwgY29udGFpbmVycy4KCgo+ICAqIE1QNHMgbWF5IGNvbnRh aW4gYSB1c2VyIGRhdGEgYm94IHdpdGggJ2lUdW5TTVBCJyB3aGljaCBjb250YWlucyBwcmltaW5n LCBwcmUtcm9sbCwKPiAgYW5kIGVuZCBwYWRkaW5nIGRhdGEuIFdlIHN1cHBvcnQgcmVhZGluZyBv bmx5IHByaW1pbmcgZGF0YSBmcm9tIHRoaXMgYXQgdGhlIG1vbWVudCwKPiAgYW5kIHdlIHNldCBz a2lwIHNhbXBsZXMgYmFzZWQgb24gdGhpcy4gVGhpcyBpcyAnaVR1bmVzIHN0eWxlJyBtZXRhZGF0 YS4KPiAgKiBUaGUgc3RhbmRhcmRzIGNvbXBsaWFudCAocmVhZDogbm9uLWlUdW5lcykgd2F5IGlz IHRvIHVzZSBhbiBlZGl0IGxpc3QgdG8gdHJpbSB0aGUKPiAgcHJpbWluZyBzYW1wbGVzLCBhbmQs IG9waW9uYWxseSBlbmQgcGFkZGluZy4gRW5kIHBhZGRpbmcgbWF5IGFsc28gYmUgdHJpbW1lZCBi eSByZWR1Y2luZwo+ICB0aGUgc2FtcGxlIGR1cmF0aW9uIG9mIHRoZSBsYXN0IHBhY2tldCBpbiB0 aGUgc3R0cyBib3guIFByZS1yb2xsIGlzIHN0b3JlIGluIHRoZSBzZ3BiCj4gIGJveCB3aXRoIHRo ZSAncm9sbCcsIHR5cGUsIHdoaWNoIHNpZ25hbHMgdGhlIHJvbGwgZGlzdGFuY2UgYXMgYSBudW1i ZXIgb2YgcGFja2V0czsKPiAgZm9yIGV4YW1wbGUsIC0xIGluZGljYXRlcyB5b3Ugc2hvdWxkIGRl Y29kZSBhbiBkaXNjYXJkIHRoZSBzYW1wbGVzIG9mIDEgcGFja2V0IGJlZm9yZQo+ICBiZWdpbm5p bmcgcGxhYmFjay4gTm90YWJseSwgdGhpcyBhbGxvd3MgdGhlIHNncGQgYm94IHRvIGFsc28gYmUg dXNlIGZvciB2aWRlbyBsaWtlCj4gIHBlcmlvZGljIGludHJhIHJlZnJlc2ggSC4yNjQuIGxpYmF2 Zm9ybWF0IGRvZXMgbm90IGN1cnJlbnQgcGFyc2Ugb3IgZXhwb3J0IHRoaXMgaW5mbywKPiAgYnV0 IGV2ZW4gaWYgd2UgZGlkLCBjb252ZXJ0aW5nIG51bWJlciBvZiBwYWNrZXRzIHRvIGF1ZGlvIHNh bXBsZXMgY2FuIGdldCBoYWlyeS4KPiAgKiBOb3RhYmx5LCBzaW5jZSBpbiBNUDQsIHRoZSBlZGl0 IGxpc3QgcmVwcmVzZW50cyB0aGUgZXhhY3QgcHJlc2VudGF0aW9uLWxldmVsIGluZm8sCj4gIHdo ZW4gbm8gZWRpdCBsaXN0LCBvciBhbiBlZGl0IGxpc3Qgc3RhcnRpaW5nIGF0IDAgaXMgcHJlc2Vu dCwgbm8gc2FtcGxlcywgbm90IGV2ZW4KPiAgcHJlLXJvbGwgc2hvdWxkIGJlIHRyaW1tZWQgLSBh bGwgcGxheWVycyBpbiB0aGUgd2lsZCBoYW5kbGUgdGhpcyBwcm9wZXJseSwgYW5kIGl0Cj4gIGhh cyBiZWVuIHN0YW5kYXJkIHByYWN0aWNlIGFtb25nIHN0cmVhbWluZyBzZXJ2aWNlcyBmb3IgPjEw IHllYXJzIHRvIG5vdCBvdXRwdXQKPiAgdGhlIEFBQyBmcmFtZXMgcmVwcmVzZW50aW5nIHByaW1p bmcgc2FtcGxlcyBhdCBhbGwgKGV2ZW4gaWYgdGhlcmUgaXMgYSBzbWFsbCBoaXQKPiAgcXVhbGl0 eSkuIFRoaXMgaXMgd2hhdCB0aGUgcGF0Y2ggYXQgWzBdIGlzIGFkZHJlc3NpbmcuCj4gICogTXkg cGVyc29uYWwgb3BpbmlvbiBpcyB0aGF0IHNpbmNlIHByaW1pbmcgc2FtcGxlcyBpbmNsdWRlIGFu eSBpbmhlcmVudCBkZWxheSBhbHJlYWR5LAo+ICB0aGF0IGlmIHdlIGRvIG5vdCBrbm93IGhvdyBt YW55IHByaW1pbmcgc2FtcGxlcyB0aGVyZSBhcmUsIHdlIHNob3VsZCBub3QgdHJpbSBhbnl0aGlu Zwo+ICBmcm9tIHRoZSBzdGFydCBvZiB0aGUgZmlsZSwgcmVnYXJkbGVzcyBvZiBmb3JtYXQuIEkg YW0ga2VlbiBvbiBoZWFyaW5nIG90aGVycyBPcGluaW9ucyhUTSkKPiAgaGVyZSwgcGFydGljdWxh cmlseSBBbnRvbiBhbmQgTWFydGluIChzb3JyeSBmb3IgbmFtZSBkcm9wcGluZyA6KSkuCj4KCkZv ciBNUDQtb25seSwgSSB3b3VsZCBiZSBpbmNsaW5lZCB0byBhZ3JlZS4gRm9yIGFueXRoaW5nIGVs c2UsIEkgd2lsbCBkaXNhZ3JlZS4KRXZlcnl0aGluZyBlbHNlLCBpbmNsdWRpbmcgdXNlcnMsIGV4 cGVjdCBubyBhZGRpdGlvbmFsIHNhbXBsZXMgdG8gYmUgcHJlc2VudCBhdCB0aGUKc3RhcnQsIGFu ZCBhc3N1bWUgc28uCgoKPiAgKiBGdXJ0aGVyIGNvbXBsaWNhdGluZyBtYXR0ZXJzIGlzIHRoZSBm YWN0IHRoYXQsIGFnYWluIHRoYW5rcyB0byBBcHBsZSwgdGhlcmUgYXJlIGEgbG90Cj4gIG9mIGJy b2tlbiBmaWxlcyBhcm91bmQsIHNpbmNlIGlUdW5lcyBleHBlY3RzIGZpbGVzIHRvICpub3QqIGlu Y2x1ZGUgYWRkaXRpb24gZGVsYXkgaW5jdXJyZWQKPiAgYnkgU0JSIGluIHRoZWlyIGVkaXQgbGlz dCAvIHByaW1pbmcgaW5mbywgZXZlbiB0aG91Z2gsIGJ5IHNwZWMsIHlvdSBhcmUgc3VwcG9zZSB0 by4gVGhpcwo+ICBsZWFkcyB0byB0aGUgdW5mb3J0dW5hdGUgY2FzZSB3aGVyZSB5b3UgaGF2ZSB0 b25zIG9mIGZpbGVzIGluIHRoZSB3aWxkIHRoYXQgYm90aCBkbywgYW5kCj4gIGRvIG5vdCBpbmNs dWRlIFNCUiBkZWxheSBpbiB0aGVpciBlZGl0IGxpc3RzLCBhbmQgdGhlcmUgaXMgbm8gd2F5IG9m IGRldGVjdGluZyB3aGVuIHRoaXMgaXMKPiAgdGhlIGNhc2UuIEkgZG8gbm90IGhhdmUgYSBnb29k IHNvbHV0aW9uIHRvIHRoaXMgb3RoZXIgdGhhbiBwcm9wb3NpbmcgYSBmbGFnIHNvbWV3aGVyZSB0 bwo+ICBzd2l0Y2ggYmV0d2VlbiBiZWhhdmlvcnMuCj4KPiBBc2lkZSwgZm9yIE9wdXMsIHdlIGlu Y29ycmVjdGx5IHJlYWQgdGhpcyBpbmZvIGZyb20gdGhlIGNvZGVjIHNwZWNpZmljIGJveCBpbnN0 ZWFkIG9mIHRoZSBzZ3BkIGJveC4uLgo+IGJ1dCB3ZSBvbmx5IGV2ZXIgcHV0IGl0IGluIGEgd3Jp dGUtb25seSBmaWVsZC4KPgo+IE5vdywgb24gdG8gdGhlIHBhdGNoZXMgLyBpbXBsZW1lbnRhdGlv biAob3BpbmlvbnMgd2FybmluZyk6Cj4KPiAgKiBBcyBub3RlZCBhYm92ZSwgSSBkb24ndCB0aGlu ayB3ZSBzaG91bGQgYXBwbHkgYW55IGd1ZXNzZWQgcHJpbWluZyB0byBpbml0aWFsIHNhbXBsZXMg KHByZS1yb2xsLAo+ICBvciAnYWxnb3JpdGhtaWMgZGVsYXksIGluY2x1ZGVkKS4gTm8gb3RoZXIg ZGVjb2RlcnMgb3IgcGxheWVycyBkbyB0aGlzLCBpbiB0aGUgd29ybGQsIHRvIG15Cj4gIGtub3ds ZWRnZSwgYW5kIHZpb2xhdGluZyB0aGUgcHJpbmNpcGFsIG9mIGxlYXN0IHN1cnBpc2UgYmVjYXVz ZSB3ZSB0aGluayB3ZSdyZSBzbGlnaHRseSBtb3JlCj4gIGNvcnJlY3QgaXNuJ3QgZ3JlYXQuIEkg YWxzbyB0aGluayB0cnlpbmcgdG8gJ2ZpeCcgcmF3IEFEVFMgaXMgZGVzdGluZWQgdG8gYWx3YXlz IGJlIGEgaGFjaywKPiAgYW4gd2Ugc2hvdWxkbid0LiBZTU1WLiBJJ2QgbGlrZSB0byBoZWFyIHZp ZXdzIGZyb20gb3RoZXJzIGhlcmUuIFRoaXMgd291bGQgbWFrZSB0aGUgcGF0Y2ggaW4KPiAgWzBd IHJlZHVuZGFudC4KPgoKSSB3b3VsZCBiZSB3aWxsaW5nIHRvIGFjY2VwdCB0aGlzIGZvciBNUDQg YW5kIG1heWJlIEFEVFMuCkJ1dCBJIHdpbGwgbm90IGFjY2VwdCBub3Qgc3RyaXBwaW5nIG9mZiBt YXRoZW1hdGljYWxseSBkZWZpbmVkIGFzIHJlZHVuZGFudCBzYW1wbGVzLAp3aGljaCB3ZSBzdHJp cCBvZmYgZm9yIGV2ZXJ5IG90aGVyIGNvZGVjIHdpdGggYSBrbm93biBhbW91bnQsIGZvciBhbnl0 aGluZyBlbHNlLCBpZiBubwpkYXRhIGlzIHByZXNlbnQgdG8gaW5kaWNhdGUgaG93IG1hbnkgc2Ft cGxlcyB0byBzdHJpcC4KT3VyIGVuY29kZXIgbWF0Y2hlcyB0aGlzLCBhbmQgc28gZG9lcyBldmVy eSBzaW5nbGUgb3RoZXIgYXVkaW8gY29kZWMuIEp1c3QgYmVjYXVzZSBldmVyeW9uZQplbHNlIGlu dHJvZHVjZXMgYWRkaXRpb25hbCBwYWRkaW5nIHdpdGggdGhlaXIgZW5jb2RlciBkb2VzIG5vdCBt ZWFuIHRoYXQgaXQncyBhIGd1ZXNzLgpJdCBpcyBhIGRlZmluZWQgKm1pbmltdW0qIHZhbHVlIHRo YXQgYW55IHdlbGwtd3JpdHRlbiBlbmNvZGVyIGNhbiBtZWV0LgoKCj4gICogSSBkb24ndCB0aGlu ayBoYXJkY29kaW5nIGEgdmFsdWUgb2YgMTAyNCAob3IgOTYwKSBpcyB3aXNlLCBvciBuZWNlc3Nh cmlseSBldmVuIGNvcnJlY3QuIEZvciBleGFtcGxlLAo+ICBhbGwgSEUtQUFDIE1QNHMgSSBoYXZl IHNpZ25hbCBhIHNlZWsgcHJlLXJvbGwgb2YgMjA0OCBzYW1wbGVzLiBJZGVhbGx5IHdlIHdvdWxk IHBhc3MgdGhyb3VnaCBzZWVrCj4gIHByZS1yb2xsIHNvbWVob3cgLSBidXQgSSBhbSBub3Qgc3Vy ZSBvZiBhIGdvb2Qgd2F5IGluIG91ciBleGlzdGluZyBzZXR1cCAtIHRoZSB3cml0ZS1vbmx5IGNv ZGVjcGFyCj4gIGZpZWxkIGZvciBzZWVrIHByZS1yb2xsIGlzIGluIHNhbXBsZXMsIHdoaWNoIGlz IGtpbmQgb2YgaW5jb21wYXRpYmxlIHdpdGggdGhlIHdheSB0aGUgc2dwZCBib3ggc3RvcmVzCj4g IHByZS1yb2xsIGFzIG51bWJlciBvZiBwYWNrZXRzLiBXZSBjb3VsZCBzZXQgaXQgYmFzZWQgb25l IHRoZSBkdXJhdGlvbiBvZiB0aGUgZmlyc3QgcGFja2V0KHMpLCBhc3N1bWluZwo+ICBhbGwgYXVk aW8gY29kZWNzIHdpbGwgaGF2ZSBvbmx5IDEgcGFja2V0IGR1cmF0aW9uIChmcmFtZSBzaXplKSwg b3Igd2UgY291bGQgYWRkIGEgbmV3IGZpZWxkLiBQb3NzaWJseSwKPiAgd2UgY291bGQgbGVhdmUg dGhlIGhhcmRjb2RlZCB2YWx1ZXMgaW4gcGxhY2UsIG9ubHkgZm9yIHNlZWtpbmcsIGluc2lkZSBl LmcuIEFEVFMuCj4KClRoZSB2YWx1ZSBpcyBub3QgaGFyZGNvZGVkLiBJZiBzaWRlIGRhdGEgaXMg cHJlc2VudCwgdGhlIHNpZGUgZGF0YSB3aWxsIGJlIHVzZWQuIFRoZSB2YWx1ZSBJIGhhdmUgcHV0 IHRoZXJlIGlzIGVxdWFsIHRvIHRoZSBhbGdvcml0aG1pYyBkZWxheSwgd2hpY2gsIGxpa2UgSSBt ZW50aW9uZWQgZWFybGllciwgaXMgYSBtaW5pbXVtLgpUaGUgZW5jb2RlciBtYXkga25vdyBtb3Jl LCBzbyBJIHdvdWxkIGFjY2VwdCBhbnkgY29udGFpbmVyIHZhbHVlIGFzIGxvbmcgYXMgaXQgaXMg bGFyZ2VyIHRoYW4gdGhlIGFsZ29yaXRobWljIGRlbGF5LgoKCj4gICogVGhpcyBraW5kIG9mIGJy aW5ncyBtZSB0bzogSSBkb24ndCByZWFsbHkgdGhpbmsgdXNpbmcgdGhlIHNhbWUgc2lkZSBkYXRh IGZvciBib3RoIHByaW1pbmcgYW5kIHByZS1yb2xsCj4gIGlzIGEgZ3JlYXQgaWRlYS4gQ2xlYXJs eSB0aGlzIHNldCBvZiBwcm9ibGVtcyBpcyBhbHJlYWR5IGNvbmZ1c2luZyBlbm91Z2ggdG8gbWFu eSwgYW5kIGNvbmZsYXRpbmcgdGhlCj4gIHR3byBpbiB0aGUgQVBJIGlzIGEgc3VyZSB3YXkgdG8g b25seSBtYWtlIGl0IHdvcnNlLgo+ICAqIElmIHdlIGFyZSBnb2luZyB0byBkaXNjYXJkIGF0IHNl ZWssIHdlIG5lZWQgdG8gdGFrZSB0aGlzIGludG8gYWNjb3VudCBpbiB0aGUgZGVtdXhlcidzIHNl ZWsgY29kZSwgb3IKPiAgd2Ugd2lsbCBhbHdheXMgYmUgJHByZXJvbGwgbnVtYmVyIG9mIHNhbXBs ZXMgb2ZmIHdoZXJlIHRoZSB1c2VyIGFjdHVhbGx5IHdhbnRlZCB0byBzZWVrIGFuZCBkZWNvZGUu Cj4KCkNvcnJlY3QuIFdlIGhhdmUgdG8gdGFrZSB0aGlzIGludG8gYWNjb3VudCB3aGlsZSBtdXhp bmcuCgoKPiBJIGFtIGFsbW9zdCBjZXJ0YWluIEkgbWlzc2VkIGV2ZW4gbW9yZSBudWFuY2UsIGFu ZCBob3BlZnVsbHkgTWFydGluIG9yIEFudG9uIGNhbiBjaGltZSBpbiwgb3IgSSByZW1lbWJlciBt b3JlLgo+Cj4gQnV0IGFsc28sIGdpdmVuIGFsbCBvZiB0aGlzLCBJIHRoaW5rIHdlIG5lZWQgdG8g ZGVlcGx5IGNvbnNpZGVyIGhvdyB3ZSBhcHByb2FjaCB0aGlzLCBzbyB3ZSBkb24ndCBlbmQgdXAg d2l0aAo+IHNvbWV0aGluZyB0aGF0IG9ubHkgY292ZXJzIGNlcnRhaW4gY2FzZXMgKGFuZCBJIGFt IHN1cmUgSSBmb3Jnb3QgbW9yZSBjYXNlcykuIFRvIHRoYXQgZW5kLCBJIGRvIG5vdCB0aGluayBy dXNoaW5nCj4gdG8gZ2V0IGEgcGF0Y2hzZXQgdGhhdCBjYW4gY2hhbmdlIHN5bmMgb24gYWxsIEFB QyBmaWxlcyBpbiBleGlzdGVuY2UgaW50byA2LjEgaXMgd2lzZS4gRXZlbiB3aGVuIHRoaXMgZG9l cyBnbyBpbiwKPgoKSSBkaWQgYWdyZWUgdG8gdGhpcywgYW5kIHlvdSBkaWQgc2VlIGl0IGJlZm9y ZSB5b3Ugc2VudCB0aGlzLgoKCj4gaXQgc2hvdWxkIGJlIGFibGUgdG8gc2l0IGluIG1hc3RlciBm b3IgYSBnb29kIGxvbmcgdGltZSBiZWZvcmUgYmVpbmcgaW4gYSByZWxlYXNlLiBBcyBJIHVuZGVy c3RhbmQgaXQsIEZBVEUgaXMKPiBhbHJlYWR5IHVuaGFwcHksIGFuZCBpdCBzaG91bGRuJ3QgYmUg dHJlYXRlZCBhcyBiZWluZyBhIHByb2JsZW0gd2l0aCBGQVRFIHZzIHRoZSBzZXQuCj4KPiBMYXN0 bHksIHNvbWUgdGltZSB0aGlzIHdlZWtlbmQvd2VlaywgSSB3aWxsIGxhYm91ciB0byBjcmVhdGUg YSBtb3JlIGV4dGVuc2l2ZSBzZXQgb2YgQUFDIGZpbGVzIHdlIGNhbiB1c2UgdG8KPiB0ZXN0LCBh bmQgdXNlIGluIEZBVEUuCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K