<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>61355</bug_id>
          
          <creation_ts>2011-05-24 04:05:31 -0700</creation_ts>
          <short_desc>[GStreamer] WebAudio implementation</short_desc>
          <delta_ts>2014-03-03 00:21:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://chromium.googlecode.com/svn/trunk/samples/audio/index.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61356</dependson>
    
    <dependson>61357</dependson>
    
    <dependson>67187</dependson>
    
    <dependson>69703</dependson>
    
    <dependson>69834</dependson>
    
    <dependson>69835</dependson>
    
    <dependson>69836</dependson>
    
    <dependson>73080</dependson>
    
    <dependson>73545</dependson>
    
    <dependson>77959</dependson>
    
    <dependson>80681</dependson>
    
    <dependson>80823</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>crogers</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>dw.im</cc>
    
    <cc>dynastpsh</cc>
    
    <cc>jderose</cc>
    
    <cc>lauro.neto</cc>
    
    <cc>peter</cc>
    
    <cc>s.choi</cc>
    
    <cc>s.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>sh919.park</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>408765</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-24 04:05:31 -0700</bug_when>
    <thetext>It&apos;d be great to have GStreamer-enabled ports implement WebAudio rendering.
Patch incoming for the GTK+ port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480564</commentid>
    <comment_count>1</comment_count>
      <attachid>110273</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-10-08 09:28:50 -0700</bug_when>
    <thetext>Created attachment 110273
Initial GStreamer WebAudio implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480565</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-10-08 09:29:46 -0700</bug_when>
    <thetext>Hey Zan, can you have a look and test? You&apos;ll also need the patch from bug 69703.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480567</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-10-08 09:38:34 -0700</bug_when>
    <thetext>To build: build-webkit --enable-webaudio --gtk
To test: run-launcher --gtk --enable-webaudio=TRUE

Layout tests don&apos;t run yet, I have a patch pending for this issue but it&apos;s not all set for review yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483148</commentid>
    <comment_count>4</comment_count>
      <attachid>110273</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-10-13 05:59:13 -0700</bug_when>
    <thetext>Comment on attachment 110273
Initial GStreamer WebAudio implementation

This patch is already obsolete, I&apos;ll try to update it regularly as the dependency patches of this bug are being reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571731</commentid>
    <comment_count>5</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-03-06 04:42:21 -0800</bug_when>
    <thetext>Dear Philippe,

When I try to build the WebKit-gtk with &apos;--web-audio&apos; option,
I met build failure - &quot;execvp: /bin/bash: Argument list too long&quot;.

WebKit-gtk is built successfully without &apos;--web-audio&apos; option.

Is there any specific way to build the WebKit-gtk with &apos;--web-audio&apos; option?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571738</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-06 04:45:49 -0800</bug_when>
    <thetext>You need a patched make, see http://thread.gmane.org/gmane.comp.gnu.make.bugs/4219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948173</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-07 03:00:39 -0800</bug_when>
    <thetext>Let&apos;s close this now, the last 2 issues are integration with media element and mediastream but it can be handled in separate bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986284</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-03-03 00:21:37 -0800</bug_when>
    <thetext>Closing as per comment 7</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110273</attachid>
            <date>2011-10-08 09:28:50 -0700</date>
            <delta_ts>2011-10-13 05:59:13 -0700</delta_ts>
            <desc>Initial GStreamer WebAudio implementation</desc>
            <filename>Initial-GStreamer-WebAudio-implementation.patch</filename>
            <type>text/plain</type>
            <size>71745</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2ZjU1MWJkMDg4NTdhNDFlZDU5Mjg5MzMxYzI5OGVmNGEyZjIyY2EzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDI0IE1heSAyMDExIDEzOjAzOjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
SW5pdGlhbCBHU3RyZWFtZXIgV2ViQXVkaW8gaW1wbGVtZW50YXRpb24KCi0tLQogQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsKIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NyArKysr
CiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjcgKystCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAgICAg
ICB8ICAxMjEgKysrKysrLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtl
ZmlsZS5hbSAgICAgfCAgICA0ICsKIC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5jcHAgIHwgIDExMCArKysrKysKIC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5oICAgIHwgICA1NiArKysKIC4uLi9hdWRpby9nc3RyZWFtZXIv
QXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCAgIHwgIDM5NSArKysrKysrKysrKysrKysrKysr
KwogLi4uL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuaCAgICAgfCAg
IDgxICsrKysKIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3Bw
ICAgIHwgIDM2NCArKysrKysrKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2ViQXVk
aW9Tb3VyY2VHU3RyZWFtZXIuaCAgICAgIHwgICA1MiArKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2d0ay9BdWRpb0J1c0d0ay5jcHAgIHwgICA0NyArKysKIFNvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArCiBTb3VyY2UvV2Vi
S2l0L2d0ay9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCAgICAgfCAgIDI0ICsrLQog
Li4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oICAgfCAgICAx
ICsKIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgIHwg
ICAgOSArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDkgKwogU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAg
ICAgICAgfCAgICAxICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMCArCiAuLi4vRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcCB8ICAgIDIgKwogY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDIyICstCiAyMiBmaWxlcyBjaGFuZ2VkLCAxNDI2IGluc2Vy
dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3RrL0F1ZGlvQnVz
R3RrLmNwcAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmZWNmYTk1
Li5kOTFkN2MyIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMTAtMDggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPiBhbmQgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgorCisgICAgICAg
IFtHU3RyZWFtZXJdIFdlYkF1ZGlvIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM1NQorCisgICAgICAgIFdlYkF1ZGlvIGJ1
aWxkIHN1cHBvcnQuIEdTdHJlYW1lciwgbGliZmZ0dyBhbmQgc294IGFyZSByZXF1aXJlZCBmb3Ig
dGhpcyBuZXcKKyAgICAgICAgZmVhdHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAxMS0xMC0wNiAgRmFkeSBT
YW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb2RlIGNsZWFuLXVwOiBN
YWtlIFJlbmRlck9iamVjdDo6YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QgYW5kIGFzc29jaWF0ZWQg
bWV0aG9kcyBjb25zdCBhbmQgbWFrZSBpdHMgcGFyYW1ldGVyIHVzZVRyYW5zZm9ybXMgbm8gbG9u
Z2VyIGRlZmF1bHQgdG8gZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNWIyODkyLi4yNGRkY2FlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTEtMTAtMDggIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwu
Y29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIFdlYkF1ZGlvIGltcGxlbWVudGF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM1NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
KE9PUFMhKQorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVS
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Om9uR1N0cmVhbWVyV2F2cGFyc2VQYWRBZGRlZENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OkF1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6cGx1Z1NpbmspOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RvcCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjppc1BsYXlpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c2FtcGxlUmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzb3VyY2VQcm92aWRlcik6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJl
YW1lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Z2V0R1N0cmVhbWVyQXVkaW9DYXBz
KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEdTdHJlYW1lckF1ZGlvRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpvbkdTdHJlYW1lckVuZE9mU3RyZWFtQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6b25BcHBzaW5rTmV3QnVmZmVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWVzc2Fn
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om9uR1N0cmVhbWVyRGVpbnRlcmxlYXZlUGFk
QWRkZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpvbkdTdHJlYW1lckRlaW50ZXJsZWF2
ZVJlYWR5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6b25HU3RyZWFtZXJEZWNvZGViaW5Q
YWRBZGRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmVudGVyZWRNYWluTG9vcENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6QXVkaW9GaWxlUmVhZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6fkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OnNldERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpzZXRGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRmlsZVJlYWRlcjo6aGFuZGxlRW5kT2ZTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9GaWxlUmVhZGVyOjpoYW5kbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxl
UmVhZGVyOjpoYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRl
cjo6aGFuZGxlTmV3RGVpbnRlcmxlYXZlUGFkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmls
ZVJlYWRlcjo6ZGVpbnRlcmxlYXZlUGFkc0NvbmZpZ3VyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9GaWxlUmVhZGVyOjpwbHVnRGVpbnRlcmxlYXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRmlsZVJlYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVy
OjpjcmVhdGVCdXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpkYXRhU2l6ZSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDog
QWRkZWQuCisgICAgICAgIChnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKToKKyAgICAgICAgKHdl
YktpdFdlYkF1ZGlvR1N0cmVhbWVyQ2hhbm5lbFBvc2l0aW9uKToKKyAgICAgICAgKHdlYmtpdF93
ZWJfYXVkaW9fc3JjX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl9hdWRpb19zcmNf
aW5pdCk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKToKKyAgICAgICAg
KHdlYktpdFdlYkF1ZGlvU3JjRmluYWxpemUpOgorICAgICAgICAod2ViS2l0V2ViQXVkaW9TcmNT
ZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY0dldFByb3BlcnR5KToKKyAg
ICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjTG9vcCk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1Ny
Y0NoYW5nZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0
V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vZ3RrL0F1ZGlvQnVzR3RrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1
czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UpOgorCiAyMDExLTEwLTA3ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSB3ZWJraXR3ZWJz
cmM6IGF2b2lkIEdTVF9CT0lMRVJQTEFURV9GVUxMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDE0
NDRiNGUuLjQzYTBkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC05OCw2ICs5OCw3IEBAIHdl
YmNvcmVndGtfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrIFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlybyBcCisJLUkkKHNyY2RpcikvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsgXApAQCAtNTIyLDcgKzUyMywxNiBAQCBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFtZXMuY3BwIDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpLwogIyAtLS0tCiBpZiBFTkFCTEVfV0VCX0FVRElPCiBGRUFUVVJF
X0RFRklORVMgKz0gRU5BQkxFX1dFQl9BVURJTz0xCi13ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1dFQl9BVURJTz0xCit3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1dFQl9BVURJTz0x
IFwKKwktRERFUklWRURfQVVESU9fUkVTT1VSQ0VTX0RJUj1cIiR7c2hlbGwgcHdkfS8ke3RvcF9i
dWlsZGRpcn0vRGVyaXZlZFJlc291cmNlcy9hdWRpb1wiCisKK2lmIFVTRV9XRUJBVURJT19GRlRX
CitGRUFUVVJFX0RFRklORVMgKz0gV1RGX1VTRV9XRUJBVURJT19GRlRXPTEKK3dlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURXVEZfVVNFX1dFQkFVRElPX0ZGVFc9MQord2ViY29yZV9zb3VyY2VzICs9IFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9mZnR3L0ZGVEZyYW1lRkZUVy5jcHAKK2Vu
ZGlmCisKIGVuZGlmCiAKICMgLS0tLQpAQCAtNzEyLDYgKzcyMiwyMCBAQCBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg6IERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSW5zcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbmplY3RlZFNjcmlwdFNvdXJjZS5o
OiAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwogCXBlcmwgJChX
ZWJDb3JlKS9pbnNwZWN0b3IveHhkLnBsIEluamVjdGVkU2NyaXB0U291cmNlX2pzICQoV2ViQ29y
ZSkvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzICQoR0VOU09VUkNFU19XRUJDT1JF
KS9JbmplY3RlZFNjcmlwdFNvdXJjZS5oCiAKKyMgV2ViQXVkaW8gSFJURiBkYXRhYmFzZSByZXNv
dXJjZXMKKyQoV2ViQ29yZSkvcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzLyoud2F2OgorCitEZXJp
dmVkUmVzb3VyY2VzL2F1ZGlvL0NvbXBvc2l0ZS53YXYgOiAkKFdlYkNvcmUpL3BsYXRmb3JtL2F1
ZGlvL3Jlc291cmNlcy8qLndhdgorCSQoQU1fVl9HRU4pbWtkaXIgLXAgRGVyaXZlZFJlc291cmNl
cy9hdWRpbworCSQoQU1fVl9HRU4pJChTT1gpICReICRACisKKyMgSW5zdGFsbGluZyBXZWJBdWRp
byB3YXYgZmlsZXMKK2F1ZGlvZGlyID0gJHtkYXRhZGlyfS93ZWJraXRndGstQFdFQktJVEdUS19B
UElfVkVSU0lPTkAvcmVzb3VyY2VzL2F1ZGlvLworYXVkaW9fREFUQSA9IFwKKwkkKHNoZWxsIGxz
ICQoV2ViQ29yZSkvcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzLyoud2F2KSBcCisJRGVyaXZlZFJl
c291cmNlcy9hdWRpby9Db21wb3NpdGUud2F2CitkaXN0X2F1ZGlvX0RBVEEgPSAkKGF1ZGlvX0RB
VEEpCisKICMgQU5HTEUgdG9rZW5pemVyICYgcGFyc2VyCiBEZXJpdmVkU291cmNlcy9BTkdMRS9n
bHNsYW5nLmNwcDogU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL2dsc2xhbmcu
bAogCSQoQU1fVl9HRU4pJChGTEVYKSAtLW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT0iJEAi
ICIkPCIKQEAgLTgyNyw2ICs4NTEsNyBAQCBsaWJXZWJDb3JlR3RrX2xhX0NQUEZMQUdTID0gXAog
CSQoR1NUUkVBTUVSX0NGTEFHUykgXAogCSQoR1RLX0NGTEFHUykgXAogCSQoSElMRE9OX0NGTEFH
UykgXAorCSQoTElCRkZUV19DRkxBR1MpIFwKIAkkKExJQlNPVVBfQ0ZMQUdTKSBcCiAJJChMSUJY
TUxfQ0ZMQUdTKSBcCiAJJChMSUJYU0xUX0NGTEFHUykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggZjEzNDQ5NS4uY2M5NzY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC0xNDQsNiArMTQ0LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRE9NVVJMLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNET01XaW5kb3cuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRW50aXR5LmNw
cCBcCkBAIC01MDcsNiArNTA5LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTVmFsaWRpdHlTdGF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVm9pZENhbGxiYWNrLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Zv
aWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2F2ZVNoYXBlck5vZGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2F2ZVNoYXBlck5vZGUuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQWN0aXZlSW5mby5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJHTEFjdGl2ZUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1dlYkdMQnVmZmVyLmNwcCBcCkBAIC00NTkxLDggKzQ1OTUsMTcgQEAgZW5kaWYgIyBFTkQg
RU5BQkxFX1NWRwogIyAtLS0tCiAjIFdlYiBBdWRpbyBTdXBwb3J0CiAjIC0tLS0KKwogaWYgRU5B
QkxFX1dFQl9BVURJTwogd2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NvbnZvbHZlck5vZGVDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dhdmVTaGFwZXJOb2RlQ3VzdG9tLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb0Jhc2ljUHJvY2Vzc29yTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyLmNwcCBcCkBAIC00NjIyLDQyICs0NjM1LDEzMiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9QYXJhbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
aCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1NvdXJjZU5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8v
QmlxdWFkRFNQS2VybmVsLmggXAorCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0JpcXVhZEZpbHRl
ck5vZGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQ29u
dm9sdmVyTm9kZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUuaCBcCisJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJu
ZWwuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWxheU5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9EZWxheU5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVsYXlQcm9j
ZXNzb3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5oIFwK
KwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9IaWdoUGFzczJGaWx0ZXJOb2RlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vSGlnaFBhc3MyRmlsdGVyTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vSmF2YVNjcmlwdEF1ZGlvTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9Mb3dQ
YXNzMkZpbHRlck5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9Mb3dQYXNzMkZp
bHRlck5vZGUuaCBcCisJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlLmggXAorCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9PZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9PZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5oCisJU291
cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaCBcCisJU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJh
dWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmggXAorCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1dh
dmVTaGFwZXJEU1BLZXJuZWwuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9XYXZlU2hh
cGVyRFNQS2VybmVsLmggXAorCVNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9j
ZXNzb3IuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9DaGFubmVsLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9D
aGFubmVsLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWwuaCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3Iu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nl
c3Nvci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Qcm9jZXNzb3IuaCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXIuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlci5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9VdGlsaXRpZXMuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1V0aWxpdGllcy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9CaXF1YWQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9C
aXF1YWQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQ29uZS5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0NvbmUuaCBcCisJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vRGlzdGFuY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9EaXN0YW5jZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9EeW5hbWljc0Nv
bXByZXNzb3IuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRHluYW1pY3NDb21w
cmVzc29yS2VybmVsLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRHluYW1p
Y3NDb21wcmVzc29yS2VybmVsLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0R5
bmFtaWNzQ29tcHJlc3Nvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Vx
dWFsUG93ZXJQYW5uZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9FcXVh
bFBvd2VyUGFubmVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVENvbnZv
bHZlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVENvbnZvbHZlci5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lU3R1Yi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0
YWJhc2VMb2FkZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0
YWJhc2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZh
dGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24u
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZQYW5uZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGFubmVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGFubmVyLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkFjY3VtdWxhdGlvbkJ1ZmZlci5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkFjY3VtdWxhdGlvbkJ1
ZmZlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuaCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXJTdGFnZS5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUmV2ZXJiSW5wdXRCdWZmZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9SZXZlcmJJbnB1dEJ1ZmZlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9TaW5jUmVzYW1wbGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
U2luY1Jlc2FtcGxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JN
YXRoLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9aZXJvUG9sZS5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1plcm9Qb2xlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmls
ZVJlYWRlckdTdHJlYW1lci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2d0
ay9BdWRpb0J1c0d0ay5jcHAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0F1ZGlvQnVmZmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0F1ZGlvQnVmZmVyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0J1ZmZl
ckNhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQnVmZmVyQ2Fs
bGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ2hhbm5lbE1lcmdlci5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0NoYW5uZWxNZXJnZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ2hhbm5lbFNwbGl0dGVyLmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ2hhbm5lbFNwbGl0dGVyLmggXAotCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb0NvbnRleHQuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QXVkaW9Db250ZXh0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9HYWluLmNwcCBcCkBAIC00
NjY4LDE0ICs0NzcxLDE0IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0F1ZGlvTGlzdGVuZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0F1ZGlvTm9kZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb05vZGUu
aCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvUGFubmVyTm9kZS5jcHAgXAotCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1Bhbm5lck5vZGUuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0F1ZGlvUGFyYW0uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QXVkaW9QYXJhbS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Qcm9jZXNzaW5n
RXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Qcm9jZXNzaW5nRXZl
bnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvU291cmNlTm9kZS5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1NvdXJjZU5vZGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0JpcXVhZEZpbHRlck5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQmlxdWFkRmlsdGVyTm9kZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
Q29udm9sdmVyTm9kZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDb252b2x2ZXJO
b2RlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZWxheU5vZGUuY3BwIFwKQEAgLTQ2
ODQsMTIgKzQ3ODcsMTggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSGlnaFBhc3MyRmlsdGVyTm9kZS5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNKYXZhU2NyaXB0QXVkaW9Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
ZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNMb3dQYXNzMkZpbHRlck5vZGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TG93UGFzczJGaWx0ZXJOb2RlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNS
ZWFsdGltZUFuYWx5c2VyTm9kZS5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZWFs
dGltZUFuYWx5c2VyTm9kZS5oCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWx0aW1lQW5h
bHlzZXJOb2RlLmggXAorCURlcml2ZWRSZXNvdXJjZXMvYXVkaW8vQ29tcG9zaXRlLndhdgogZW5k
aWYKIAorCiAjIC0tLS0KICMgV2ViIFNvY2tldHMgU3VwcG9ydAogIyAtLS0tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQppbmRleCBkMDc4NmQ1Li5j
ZjZjMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0KQEAgLTEsNCArMSw4IEBACiB3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwK
KwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQXJyYXlCdWZmZXIuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQXJyYXlCdWZmZXJQcml2YXRlLmggXAorCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01BcnJheUJ1ZmZlclZpZXcuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy93ZWJraXQvV2ViS2l0RE9NQXJyYXlCdWZmZXJWaWV3UHJpdmF0ZS5oIFwKIAlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQXR0ci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01BdHRyUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NQmFySW5mby5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NDNlOTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiAgQ29weXJp
Z2h0IChDKSAyMDExIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5o
IgorCisjaW5jbHVkZSAiQXVkaW9DaGFubmVsLmgiCisjaW5jbHVkZSAiQXVkaW9Tb3VyY2VQcm92
aWRlci5oIgorI2luY2x1ZGUgIkdPd25QdHIuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJBdWRpb1Nv
dXJjZUdTdHJlYW1lci5oIgorCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUgPGdzdC9w
YnV0aWxzL3BidXRpbHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEF1
ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb1NvdXJjZVByb3Zp
ZGVyJiBwcm92aWRlciwgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIocHJvdmlkZXIsIHNhbXBsZVJhdGUpKTsKK30K
KworZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkKK3sKKyAgICBy
ZXR1cm4gNDQxMDAuMDsKK30KKworc3RhdGljIHZvaWQgb25HU3RyZWFtZXJXYXZwYXJzZVBhZEFk
ZGVkQ2FsbGJhY2soR3N0RWxlbWVudCogZWxlbWVudCwgR3N0UGFkKiBwYWQsIGdwb2ludGVyIGRh
dGEpCit7CisgICAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lciogZGVzdGluYXRpb24gPSByZWlu
dGVycHJldF9jYXN0PEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIqPihkYXRhKTsKKyAgICBkZXN0
aW5hdGlvbi0+cGx1Z1NpbmsocGFkKTsKK30KKworc3RhdGljIGJvb2wgZ3N0SW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKworQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcihBdWRpb1NvdXJjZVByb3ZpZGVyJiBwcm92aWRlciwgZmxvYXQgc2FtcGxlUmF0ZSkK
KyAgICA6IG1fcHJvdmlkZXIocHJvdmlkZXIpCisgICAgLCBtX3JlbmRlckJ1cygyLCAxMjgsIHRy
dWUpCisgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKKyAgICAsIG1faXNQbGF5aW5nKGZh
bHNlKQoreworICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBnc3RJbml0aWFsaXplZCA9
IGdzdF9pbml0X2NoZWNrKDAsIDAsICZlcnJvci5vdXRQdHIoKSk7CisgICAgaWYgKCFnc3RJbml0
aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9waXBlbGluZSA9IGdzdF9waXBlbGlu
ZV9uZXcoInBsYXkiKTsKKworICAgIEdzdEVsZW1lbnQqIHdlYmtpdEF1ZGlvU3JjID0gcmVpbnRl
cnByZXRfY2FzdDxHc3RFbGVtZW50Kj4oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9BVURJ
T19TUkMsICJyYXRlIiwgc3RhdGljX2Nhc3Q8Z2Zsb2F0PihzYW1wbGVSYXRlKSwgImJ1cyIsIHN0
YXRpY19jYXN0PGdwb2ludGVyPigmbV9yZW5kZXJCdXMpLCAicHJvdmlkZXIiLCAmbV9wcm92aWRl
ciwgTlVMTCkpOworCisgICAgR3N0RWxlbWVudCogd2F2cGFyc2UgPSBnc3RfZWxlbWVudF9mYWN0
b3J5X21ha2UoIndhdnBhcnNlIiwgMCk7CisgICAgZ19zaWduYWxfY29ubmVjdCh3YXZwYXJzZSwg
InBhZC1hZGRlZCIsIEdfQ0FMTEJBQ0sob25HU3RyZWFtZXJXYXZwYXJzZVBhZEFkZGVkQ2FsbGJh
Y2spLCB0aGlzKTsKKworICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihtX3BpcGVsaW5lKSwg
d2Via2l0QXVkaW9TcmMsIHdhdnBhcnNlLCBOVUxMKTsKKyAgICBnc3RfZWxlbWVudF9saW5rX3Bh
ZHNfZnVsbCh3ZWJraXRBdWRpb1NyYywgInNyYyIsIHdhdnBhcnNlLCAic2luayIsIEdTVF9QQURf
TElOS19DSEVDS19OT1RISU5HKTsKK30KKworQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKQoreworICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BpcGVsaW5lLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVs
aW5lKTsKK30KKwordm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpwbHVnU2luayhHc3RQ
YWQqIHBhZCkKK3sKKyAgICBHc3RFbGVtZW50KiBhdWRpb2NvbnZlcnQgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOworICAgIEdzdFBhZCogc2lua1BhZCA9IGdz
dF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKGF1ZGlvY29udmVydCwgInNpbmsiKTsKKyAgICBHc3RF
bGVtZW50KiBhdWRpb3NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9hdWRpb3Np
bmsiLCAwKTsKKyAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBlbGluZSksIGF1ZGlv
Y29udmVydCwgYXVkaW9zaW5rLCBOVUxMKTsKKworICAgIGdzdF9wYWRfbGluayhwYWQsIHNpbmtQ
YWQpOworICAgIGdzdF9vYmplY3RfdW5yZWYoR1NUX09CSkVDVChzaW5rUGFkKSk7CisKKyAgICBn
c3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChhdWRpb2NvbnZlcnQsICJzcmMiLCBhdWRpb3Npbmss
ICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIGdzdF9lbGVtZW50X3N5
bmNfc3RhdGVfd2l0aF9wYXJlbnQoYXVkaW9jb252ZXJ0KTsKKyAgICBnc3RfZWxlbWVudF9zeW5j
X3N0YXRlX3dpdGhfcGFyZW50KGF1ZGlvc2luayk7Cit9CisKK3ZvaWQgQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lcjo6c3RhcnQoKQoreworICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVs
aW5lLCBHU1RfU1RBVEVfUExBWUlORyk7CisgICAgbV9pc1BsYXlpbmcgPSB0cnVlOworfQorCit2
b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0b3AoKQoreworICAgIGdzdF9lbGVtZW50
X3NldF9zdGF0ZShtX3BpcGVsaW5lLCBHU1RfU1RBVEVfUEFVU0VEKTsKKyAgICBtX2lzUGxheWlu
ZyA9IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QxM2EwZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTEg
UGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpZm5kZWYgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcl9oCisjZGVm
aW5lIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXJfaAorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIK
KyNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisKK3R5cGVkZWYgc3RydWN0IF9Hc3RFbGVt
ZW50IEdzdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR3N0UGFkIEdzdFBhZDsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyIDogcHVibGlj
IEF1ZGlvRGVzdGluYXRpb24geworcHVibGljOgorICAgIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFt
ZXIoQXVkaW9Tb3VyY2VQcm92aWRlciYsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIHZpcnR1YWwg
fkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFydCgp
OworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CisKKyAgICBib29sIGlzUGxheWluZygpIHsgcmV0
dXJuIG1faXNQbGF5aW5nOyB9CisgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2FtcGxlUmF0ZTsgfQorICAgIEF1ZGlvU291cmNlUHJvdmlkZXImIHNvdXJjZVByb3ZpZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlcjsgfQorCisgICAgdm9pZCBwbHVnU2luayhHc3RQ
YWQqKTsKKworcHJpdmF0ZToKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyJiBtX3Byb3ZpZGVyOwor
ICAgIEF1ZGlvQnVzIG1fcmVuZGVyQnVzOworCisgICAgZmxvYXQgbV9zYW1wbGVSYXRlOworICAg
IGJvb2wgbV9pc1BsYXlpbmc7CisKKyAgICBHc3RFbGVtZW50KiBtX3BpcGVsaW5lOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODg3MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVh
bWVyLmNwcApAQCAtMCwwICsxLDM5NSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTEgUGhp
bGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8p
CisKKyNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuaCIKKworI2luY2x1ZGUgIkF1
ZGlvQnVzLmgiCisjaW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCisjaW5jbHVkZSAiR093blB0
ci5oIgorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2lu
ay5oPgorI2luY2x1ZGUgPGdzdC9hdWRpby9tdWx0aWNoYW5uZWwuaD4KKyNpbmNsdWRlIDxnc3Qv
YmFzZS9nc3RieXRlcmVhZGVyLmg+CisjaW5jbHVkZSA8Z3N0L3BidXRpbHMvcGJ1dGlscy5oPgor
CisjZGVmaW5lIFdFQkFVRElPX0dTVF9DQVBTX1RFTVBMQVRFICJhdWRpby94LXJhdy1mbG9hdCwg
cmF0ZT0oaW50KSVkLCBjaGFubmVscz0oaW50KSVkLCBlbmRpYW5uZXNzPShpbnQpJWQsIHdpZHRo
PShpbnQpMzIiCisKKyNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCisjZGVmaW5l
IF93ZWJhdWRpb19nc3RfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0IGdzdF9ieXRlX3JlYWRlcl9nZXRf
ZmxvYXQzMl9sZQorI2Vsc2UKKyNkZWZpbmUgX3dlYmF1ZGlvX2dzdF9ieXRlX3JlYWRlcl9nZXRf
ZmxvYXQgZ3N0X2J5dGVfcmVhZGVyX2dldF9mbG9hdDMyX2JlCisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgR3N0Q2FwcyogZ2V0R1N0cmVhbWVyQXVkaW9DYXBzKGludCBj
aGFubmVscywgZG91YmxlIHNhbXBsZVJhdGUpCit7CisgICAgR093blB0cjxnY2hhcj4gY2Fwc0Rl
c2NyaXB0aW9uKGdfc3RyZHVwX3ByaW50ZihXRUJBVURJT19HU1RfQ0FQU19URU1QTEFURSwgc3Rh
dGljX2Nhc3Q8aW50PihzYW1wbGVSYXRlKSwgY2hhbm5lbHMsIEdfQllURV9PUkRFUikpOworICAg
IHJldHVybiBnc3RfY2Fwc19mcm9tX3N0cmluZyhjYXBzRGVzY3JpcHRpb24uZ2V0KCkpOworfQor
CitzdGF0aWMgZmxvYXQqIGdldEdTdHJlYW1lckF1ZGlvRGF0YShHc3RCdWZmZXIqIGJ1ZmZlciwg
Z3VpbnQgc2l6ZSkKK3sKKyAgICBncG9pbnRlciBidWYgPSBnX21hbGxvYzAoc2l6ZSk7CisgICAg
ZmxvYXQqIGN1cnJlbnQgPSAoZmxvYXQqKSBidWY7CisgICAgZ2Zsb2F0IHZhbHVlOworICAgIEdz
dEJ5dGVSZWFkZXIqIGJ5dGVSZWFkZXIgPSBnc3RfYnl0ZV9yZWFkZXJfbmV3X2Zyb21fYnVmZmVy
KGJ1ZmZlcik7CisKKyAgICB3aGlsZSAoX3dlYmF1ZGlvX2dzdF9ieXRlX3JlYWRlcl9nZXRfZmxv
YXQoYnl0ZVJlYWRlciwgJnZhbHVlKSkKKyAgICAgICAgKmN1cnJlbnQrKyA9IChmbG9hdCkgdmFs
dWU7CisgICAgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUoYnl0ZVJlYWRlcik7CisgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWYpOworfQorCitzdGF0aWMgdm9pZCBvbkdTdHJlYW1l
ckVuZE9mU3RyZWFtQ2FsbGJhY2soR3N0QXBwU2luayogc2luaywgZ3BvaW50ZXIgdXNlckRhdGEp
Cit7CisgICAgQXVkaW9GaWxlUmVhZGVyKiByZWFkZXIgPSByZWludGVycHJldF9jYXN0PEF1ZGlv
RmlsZVJlYWRlcio+KHVzZXJEYXRhKTsKKyAgICByZWFkZXItPmhhbmRsZUVuZE9mU3RyZWFtKCk7
Cit9CisKK3N0YXRpYyBHc3RGbG93UmV0dXJuIG9uQXBwc2lua05ld0J1ZmZlckNhbGxiYWNrKEdz
dEFwcFNpbmsqIHNpbmssIGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIEF1ZGlvRmlsZVJlYWRl
ciogcmVhZGVyID0gcmVpbnRlcnByZXRfY2FzdDxBdWRpb0ZpbGVSZWFkZXIqPih1c2VyRGF0YSk7
CisgICAgcmV0dXJuIHJlYWRlci0+aGFuZGxlQnVmZmVyKHNpbmspOworfQorCitnYm9vbGVhbiBt
ZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVy
IHVzZXJEYXRhKQoreworICAgIEF1ZGlvRmlsZVJlYWRlciogcmVhZGVyID0gcmVpbnRlcnByZXRf
Y2FzdDxBdWRpb0ZpbGVSZWFkZXIqPih1c2VyRGF0YSk7CisgICAgcmV0dXJuIHJlYWRlci0+aGFu
ZGxlTWVzc2FnZShtZXNzYWdlKTsKK30KKworc3RhdGljIHZvaWQgb25HU3RyZWFtZXJEZWludGVy
bGVhdmVQYWRBZGRlZENhbGxiYWNrKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFBhZCogcGFkLCBn
cG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBBdWRpb0ZpbGVSZWFkZXIqIHJlYWRlciA9IHJlaW50
ZXJwcmV0X2Nhc3Q8QXVkaW9GaWxlUmVhZGVyKj4odXNlckRhdGEpOworICAgIHJlYWRlci0+aGFu
ZGxlTmV3RGVpbnRlcmxlYXZlUGFkKHBhZCk7Cit9CisKK3N0YXRpYyB2b2lkIG9uR1N0cmVhbWVy
RGVpbnRlcmxlYXZlUmVhZHlDYWxsYmFjayhHc3RFbGVtZW50KiBlbGVtZW50LCBncG9pbnRlciB1
c2VyRGF0YSkKK3sKKyAgICBBdWRpb0ZpbGVSZWFkZXIqIHJlYWRlciA9IHJlaW50ZXJwcmV0X2Nh
c3Q8QXVkaW9GaWxlUmVhZGVyKj4odXNlckRhdGEpOworICAgIHJlYWRlci0+ZGVpbnRlcmxlYXZl
UGFkc0NvbmZpZ3VyZWQoKTsKK30KKworc3RhdGljIHZvaWQgb25HU3RyZWFtZXJEZWNvZGViaW5Q
YWRBZGRlZENhbGxiYWNrKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFBhZCogcGFkLCBncG9pbnRl
ciB1c2VyRGF0YSkKK3sKKyAgICBBdWRpb0ZpbGVSZWFkZXIqIHJlYWRlciA9IHJlaW50ZXJwcmV0
X2Nhc3Q8QXVkaW9GaWxlUmVhZGVyKj4odXNlckRhdGEpOworICAgIHJlYWRlci0+cGx1Z0RlaW50
ZXJsZWF2ZShwYWQpOworfQorCitnYm9vbGVhbiBlbnRlcmVkTWFpbkxvb3BDYWxsYmFjayhncG9p
bnRlciB1c2VyRGF0YSkKK3sKKyAgICBBdWRpb0ZpbGVSZWFkZXIqIHJlYWRlciA9IHJlaW50ZXJw
cmV0X2Nhc3Q8QXVkaW9GaWxlUmVhZGVyKj4odXNlckRhdGEpOworICAgIHJlYWRlci0+c3RhcnQo
KTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK0F1ZGlvRmlsZVJlYWRlcjo6QXVkaW9GaWxlUmVh
ZGVyKCkKKyAgICA6IG1fZGF0YSgwKQorICAgICwgbV9kYXRhU2l6ZSgwKQorICAgICwgbV9maWxl
UGF0aCgwKQoreworfQorCitBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCBj
aGFyKiBmaWxlUGF0aCkKKyAgICA6IG1fZGF0YSgwKQorICAgICwgbV9kYXRhU2l6ZSgwKQorICAg
ICwgbV9maWxlUGF0aChmaWxlUGF0aCkKK3sKK30KKworQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0Zp
bGVSZWFkZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQorICAgIDogbV9kYXRh
KGRhdGEpCisgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQorICAgICwgbV9maWxlUGF0aCgwKQor
eworfQorCitBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQoreworfQorCit2b2lk
IEF1ZGlvRmlsZVJlYWRlcjo6c2V0RGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNp
emUpCit7CisgICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGFTaXplID0gZGF0YVNpemU7Cisg
ICAgbV9maWxlUGF0aCA9IDA7Cit9CisKK3ZvaWQgQXVkaW9GaWxlUmVhZGVyOjpzZXRGaWxlKGNv
bnN0IGNoYXIqIGZpbGVQYXRoKQoreworICAgIG1fZGF0YSA9IDA7CisgICAgbV9kYXRhU2l6ZSA9
IDA7CisgICAgbV9maWxlUGF0aCA9IGZpbGVQYXRoOworfQorCisKK3ZvaWQgQXVkaW9GaWxlUmVh
ZGVyOjpoYW5kbGVFbmRPZlN0cmVhbSgpCit7CisgICAgZ19wcmludGVycigiRU9TIGZvciAlc1xu
IiwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUobV9waXBlbGluZSkpOworICAgIEdzdEJ1cyogYnVzID0g
Z3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKTsKKworICAgIGlm
IChnX3NpZ25hbF9oYW5kbGVyX2lzX2Nvbm5lY3RlZChidXMsIG1fYnVzU2lnbmFsSGFuZGxlcklk
KSkKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KGJ1cywgbV9idXNTaWduYWxI
YW5kbGVySWQpOworCisgICAgZ3N0X29iamVjdF91bnJlZihidXMpOworCisgICAgaWYgKEdzdEVs
ZW1lbnQqIGRlaW50ZXJsZWF2ZSA9IGdzdF9iaW5fZ2V0X2J5X25hbWUoR1NUX0JJTihtX3BpcGVs
aW5lKSwgImRlaW50ZXJsZWF2ZSIpKSB7CisgICAgICAgIGlmIChnX3NpZ25hbF9oYW5kbGVyX2lz
X2Nvbm5lY3RlZChkZWludGVybGVhdmUsIG1fZGVpbnRlcmxlYXZlUGFkQWRkZWRTaWduYWxIYW5k
bGVySWQpKQorICAgICAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KGRlaW50ZXJs
ZWF2ZSwgbV9kZWludGVybGVhdmVQYWRBZGRlZFNpZ25hbEhhbmRsZXJJZCk7CisgICAgICAgIGlm
IChnX3NpZ25hbF9oYW5kbGVyX2lzX2Nvbm5lY3RlZChkZWludGVybGVhdmUsIG1fZGVpbnRlcmxl
YXZlTm9Nb3JlUGFkU2lnbmFsSGFuZGxlcklkKSkKKyAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRs
ZXJfZGlzY29ubmVjdChkZWludGVybGVhdmUsIG1fZGVpbnRlcmxlYXZlTm9Nb3JlUGFkU2lnbmFs
SGFuZGxlcklkKTsKKyAgICAgICAgZ3N0X29iamVjdF91bnJlZihkZWludGVybGVhdmUpOworICAg
IH0KKworICAgIGlmIChHc3RFbGVtZW50KiBkZWNvZGViaW4gPSBnc3RfYmluX2dldF9ieV9uYW1l
KEdTVF9CSU4obV9waXBlbGluZSksICJkZWNvZGViaW4iKSkgeworICAgICAgICBpZiAoZ19zaWdu
YWxfaGFuZGxlcl9pc19jb25uZWN0ZWQoZGVjb2RlYmluLCBtX2RlY29kZWJpblBhZEFkZGVkU2ln
bmFsSGFuZGxlcklkKSkKKyAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdChk
ZWNvZGViaW4sIG1fZGVjb2RlYmluUGFkQWRkZWRTaWduYWxIYW5kbGVySWQpOworICAgICAgICBn
c3Rfb2JqZWN0X3VucmVmKGRlY29kZWJpbik7CisgICAgfQorCisgICAgZ19tYWluX2xvb3BfcXVp
dChtX2xvb3ApOworICAgIG1fbG9vcCA9IDA7Cit9CisKK0dzdEZsb3dSZXR1cm4gQXVkaW9GaWxl
UmVhZGVyOjpoYW5kbGVCdWZmZXIoR3N0QXBwU2luayogc2luaykKK3sKKyAgICBHc3RCdWZmZXIq
IGJ1ZmZlciA9IGdzdF9hcHBfc2lua19wdWxsX2J1ZmZlcihzaW5rKTsKKyAgICBpZiAoIWJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOworCisgICAgR3N0Q2FwcyogY2FwcyA9
IGdzdF9idWZmZXJfZ2V0X2NhcHMoYnVmZmVyKTsKKyAgICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7CisKKyAgICBnaW50IGNoYW5uZWxz
ID0gMDsKKyAgICBpZiAoIWdzdF9zdHJ1Y3R1cmVfZ2V0X2ludChzdHJ1Y3R1cmUsICJjaGFubmVs
cyIsICZjaGFubmVscykpIHsKKyAgICAgICAgZ3N0X2NhcHNfdW5yZWYoY2Fwcyk7CisgICAgICAg
IHJldHVybiBHU1RfRkxPV19FUlJPUjsKKyAgICB9CisKKyAgICBjb25zdCBHVmFsdWUqIHZhbHVl
ID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RydWN0dXJlLCAiY2hhbm5lbC1wb3NpdGlvbnMi
KTsKKworICAgIC8vIENoZWNrIHRoZSBmaXJzdCBhdWRpbyBjaGFubmVsLiBUaGUgYnVmZmVyIGlz
IHN1cHBvc2VkIHRvIHN0b3JlCisgICAgLy8gZGF0YSBvZiBhIHNpbmdsZSBjaGFubmVsIGFueXdh
eS4KKyAgICBpZiAoY2hhbm5lbHMgJiYgdmFsdWUgJiYgZ3N0X3ZhbHVlX2lzX2ZpeGVkKHZhbHVl
KSkgeworICAgICAgICBHc3RBdWRpb0NoYW5uZWxQb3NpdGlvbiogcG9zaXRpb25zID0gZ3N0X2F1
ZGlvX2dldF9jaGFubmVsX3Bvc2l0aW9ucyhzdHJ1Y3R1cmUpOworICAgICAgICBHc3RCdWZmZXIq
IG1lcmdlZEJ1ZmZlcjsKKworICAgICAgICBzd2l0Y2ggKHBvc2l0aW9uc1swXSkgeworICAgICAg
ICBjYXNlIEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0ZST05UX0xFRlQ6CisgICAgICAgICAg
ICBtZXJnZWRCdWZmZXIgPSBnc3RfYnVmZmVyX2pvaW4obV9idWZmZXJGcm9udExlZnQsIGJ1ZmZl
cik7CisgICAgICAgICAgICBtX2J1ZmZlckZyb250TGVmdCA9IGdzdF9idWZmZXJfcmVmKG1lcmdl
ZEJ1ZmZlcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHU1RfQVVESU9fQ0hB
Tk5FTF9QT1NJVElPTl9GUk9OVF9SSUdIVDoKKyAgICAgICAgICAgIG1lcmdlZEJ1ZmZlciA9IGdz
dF9idWZmZXJfam9pbihtX2J1ZmZlckZyb250UmlnaHQsIGJ1ZmZlcik7CisgICAgICAgICAgICBt
X2J1ZmZlckZyb250UmlnaHQgPSBnc3RfYnVmZmVyX3JlZihtZXJnZWRCdWZmZXIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBnX2ZyZWUocG9zaXRpb25zKTsKKyAgICB9CisKKyAgICBnc3RfY2Fwc191
bnJlZihjYXBzKTsKKyAgICByZXR1cm4gR1NUX0ZMT1dfT0s7Cit9CisKK2dib29sZWFuIEF1ZGlv
RmlsZVJlYWRlcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQoreworICAgIGlm
ICghbV9sb29wKQorICAgICAgICByZXR1cm4gVFJVRTsKKworICAgIHN3aXRjaCAoR1NUX01FU1NB
R0VfVFlQRShtZXNzYWdlKSkgeworICAgIGNhc2UgR1NUX01FU1NBR0VfRU9TOgorICAgICAgICBn
X21haW5fbG9vcF9xdWl0KG1fbG9vcCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gVFJVRTsKK30KKwordm9pZCBBdWRpb0Zp
bGVSZWFkZXI6OmhhbmRsZU5ld0RlaW50ZXJsZWF2ZVBhZChHc3RQYWQqIHBhZCkKK3sKKyAgICBH
c3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCAwKTsK
KyAgICBHc3RFbGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhcHBzaW5r
IiwgMCk7CisgICAgZ2NoYXIqIHBhZE5hbWUgPSBnc3RfcGFkX2dldF9uYW1lKHBhZCk7CisKKyAg
ICBHc3RBcHBTaW5rQ2FsbGJhY2tzIGNhbGxiYWNrczsKKyAgICBjYWxsYmFja3MubmV3X3ByZXJv
bGwgPSAwOworICAgIGNhbGxiYWNrcy5uZXdfYnVmZmVyX2xpc3QgPSAwOworICAgIGNhbGxiYWNr
cy5uZXdfYnVmZmVyID0gb25BcHBzaW5rTmV3QnVmZmVyQ2FsbGJhY2s7CisgICAgaWYgKCFnX3N0
cmNtcDAocGFkTmFtZSwgInNyYzAiKSkKKyAgICAgICAgY2FsbGJhY2tzLmVvcyA9IG9uR1N0cmVh
bWVyRW5kT2ZTdHJlYW1DYWxsYmFjazsKKyAgICBlbHNlCisgICAgICAgIGNhbGxiYWNrcy5lb3Mg
PSAwOworCisgICAgZ3N0X2FwcF9zaW5rX3NldF9jYWxsYmFja3MoR1NUX0FQUF9TSU5LKHNpbmsp
LCAmY2FsbGJhY2tzLCB0aGlzLCAwKTsKKyAgICBnc3RfYXBwX3Npbmtfc2V0X2NhcHMoR1NUX0FQ
UF9TSU5LKHNpbmspLCBnZXRHU3RyZWFtZXJBdWRpb0NhcHMoMSwgbV9zYW1wbGVSYXRlKSk7CisK
KyAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBlbGluZSksIHF1ZXVlLCBzaW5rLCBO
VUxMKTsKKworICAgIEdzdFBhZCogc2lua1BhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFk
KHF1ZXVlLCAic2luayIpOworICAgIGdzdF9wYWRfbGluayhwYWQsIHNpbmtQYWQpOworICAgIGdz
dF9vYmplY3RfdW5yZWYoR1NUX09CSkVDVChzaW5rUGFkKSk7CisgICAgZ19mcmVlKHBhZE5hbWUp
OworCisgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUsICJzcmMiLCBzaW5rLCAi
c2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKworICAgIGdzdF9lbGVtZW50X3Nl
dF9zdGF0ZShxdWV1ZSwgR1NUX1NUQVRFX1JFQURZKTsKKyAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUoc2luaywgR1NUX1NUQVRFX1JFQURZKTsKK30KKwordm9pZCBBdWRpb0ZpbGVSZWFkZXI6OmRl
aW50ZXJsZWF2ZVBhZHNDb25maWd1cmVkKCkKK3sKKyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUo
bV9waXBlbGluZSwgR1NUX1NUQVRFX1BMQVlJTkcpOworfQorCit2b2lkIEF1ZGlvRmlsZVJlYWRl
cjo6cGx1Z0RlaW50ZXJsZWF2ZShHc3RQYWQqIHBhZCkKK3sKKyAgICBHc3RFbGVtZW50KiBhdWRp
b2NvbnZlcnQgID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb2NvbnZlcnQiLCAwKTsK
KyAgICBHc3RFbGVtZW50KiBhdWRpb3Jlc2FtcGxlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtl
KCJhdWRpb3Jlc2FtcGxlIiwgMCk7CisgICAgR3N0RWxlbWVudCogY2Fwc2ZpbHRlciA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbWFrZSgiY2Fwc2ZpbHRlciIsIDApOworICAgIEdzdEVsZW1lbnQqIGRl
aW50ZXJsZWF2ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZGVpbnRlcmxlYXZlIiwgImRl
aW50ZXJsZWF2ZSIpOworCisgICAgZ19vYmplY3Rfc2V0KGRlaW50ZXJsZWF2ZSwgImtlZXAtcG9z
aXRpb25zIiwgVFJVRSwgTlVMTCk7CisgICAgbV9kZWludGVybGVhdmVQYWRBZGRlZFNpZ25hbEhh
bmRsZXJJZCA9IGdfc2lnbmFsX2Nvbm5lY3QoZGVpbnRlcmxlYXZlLCAicGFkLWFkZGVkIiwgR19D
QUxMQkFDSyhvbkdTdHJlYW1lckRlaW50ZXJsZWF2ZVBhZEFkZGVkQ2FsbGJhY2spLCB0aGlzKTsK
KyAgICBtX2RlaW50ZXJsZWF2ZU5vTW9yZVBhZFNpZ25hbEhhbmRsZXJJZCA9IGdfc2lnbmFsX2Nv
bm5lY3QoZGVpbnRlcmxlYXZlLCAibm8tbW9yZS1wYWRzIiwgR19DQUxMQkFDSyhvbkdTdHJlYW1l
ckRlaW50ZXJsZWF2ZVJlYWR5Q2FsbGJhY2spLCB0aGlzKTsKKworICAgIGdfb2JqZWN0X3NldChj
YXBzZmlsdGVyLCAiY2FwcyIsIGdldEdTdHJlYW1lckF1ZGlvQ2FwcygyLCBtX3NhbXBsZVJhdGUp
LCBOVUxMKTsKKworICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihtX3BpcGVsaW5lKSwgYXVk
aW9jb252ZXJ0LCBhdWRpb3Jlc2FtcGxlLCBjYXBzZmlsdGVyLCBkZWludGVybGVhdmUsIE5VTEwp
OworCisgICAgR3N0UGFkKiBzaW5rUGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoYXVk
aW9jb252ZXJ0LCAic2luayIpOworICAgIGdzdF9wYWRfbGluayhwYWQsIHNpbmtQYWQpOworICAg
IGdzdF9vYmplY3RfdW5yZWYoR1NUX09CSkVDVChzaW5rUGFkKSk7CisKKyAgICBnc3RfZWxlbWVu
dF9saW5rX3BhZHNfZnVsbChhdWRpb2NvbnZlcnQsICJzcmMiLCBhdWRpb3Jlc2FtcGxlLCAic2lu
ayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyAgICBnc3RfZWxlbWVudF9saW5rX3Bh
ZHNfZnVsbChhdWRpb3Jlc2FtcGxlLCAic3JjIiwgY2Fwc2ZpbHRlciwgInNpbmsiLCBHU1RfUEFE
X0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoY2Fw
c2ZpbHRlciwgInNyYyIsIGRlaW50ZXJsZWF2ZSwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tf
Tk9USElORyk7CisKKyAgICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGF1ZGlv
Y29udmVydCk7CisgICAgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudChhdWRpb3Jl
c2FtcGxlKTsKKyAgICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGNhcHNmaWx0
ZXIpOworICAgIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoZGVpbnRlcmxlYXZl
KTsKK30KKwordm9pZCBBdWRpb0ZpbGVSZWFkZXI6OnN0YXJ0KCkKK3sKKyAgICBtX3BpcGVsaW5l
ID0gZ3N0X3BpcGVsaW5lX25ldygwKTsKKworICAgIEdzdEJ1cyogYnVzID0gZ3N0X3BpcGVsaW5l
X2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKTsKKyAgICBnc3RfYnVzX2FkZF9zaWdu
YWxfd2F0Y2goYnVzKTsKKyAgICBtX2J1c1NpZ25hbEhhbmRsZXJJZCA9IGdfc2lnbmFsX2Nvbm5l
Y3QoYnVzLCAibWVzc2FnZSIsIEdfQ0FMTEJBQ0sobWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7Cisg
ICAgZ3N0X29iamVjdF91bnJlZihidXMpOworCisgICAgR3N0RWxlbWVudCogc291cmNlOworICAg
IGlmIChtX2RhdGEpIHsKKyAgICAgICAgQVNTRVJUKG1fZGF0YVNpemUpOworICAgICAgICBzb3Vy
Y2UgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImdpb3N0cmVhbXNyYyIsIDApOworICAgICAg
ICBHSW5wdXRTdHJlYW0qIG1lbW9yeVN0cmVhbSA9IGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXdf
ZnJvbV9kYXRhKG1fZGF0YSwgbV9kYXRhU2l6ZSwgMCk7CisgICAgICAgIGdfb2JqZWN0X3NldChz
b3VyY2UsICJzdHJlYW0iLCBtZW1vcnlTdHJlYW0sIE5VTEwpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHNvdXJjZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZmlsZXNyYyIsIDApOworICAg
ICAgICBnX29iamVjdF9zZXQoc291cmNlLCAibG9jYXRpb24iLCBtX2ZpbGVQYXRoLCBOVUxMKTsK
KyAgICB9CisKKyAgICBHc3RFbGVtZW50KiBkZWNvZGViaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoImRlY29kZWJpbjIiLCAiZGVjb2RlYmluIik7CisgICAgbV9kZWNvZGViaW5QYWRBZGRl
ZFNpZ25hbEhhbmRsZXJJZCA9IGdfc2lnbmFsX2Nvbm5lY3QoZGVjb2RlYmluLCAicGFkLWFkZGVk
IiwgR19DQUxMQkFDSyhvbkdTdHJlYW1lckRlY29kZWJpblBhZEFkZGVkQ2FsbGJhY2spLCB0aGlz
KTsKKworICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihtX3BpcGVsaW5lKSwgc291cmNlLCBk
ZWNvZGViaW4sIE5VTEwpOworICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHNvdXJjZSwg
InNyYyIsIGRlY29kZWJpbiwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Cisg
ICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9QQVVTRUQpOwor
fQorCitzdGF0aWMgYm9vbCBnc3RJbml0aWFsaXplZCA9IGZhbHNlOworCitQYXNzT3duUHRyPEF1
ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29s
IG1peFRvTW9ubykKK3sKKyAgICBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOworCisgICAgR093
blB0cjxHRXJyb3I+IGVycm9yOworICAgIGdzdEluaXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2so
MCwgMCwgJmVycm9yLm91dFB0cigpKTsKKyAgICBpZiAoIWdzdEluaXRpYWxpemVkKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIC8vIFRoZSBsb29wIG5lZWRzIGl0cyBjb250ZXh0IHRv
IGJlIHRoZSB0aHJlYWQtZGVmYXVsdCBzbyBnc3QgYnVzCisgICAgLy8gcHJvcGVybHkgZGlzcGF0
Y2ggaXRzIG1lc3NhZ2VzIHRvIG91ciBlbmQuCisgICAgbV9jb250ZXh0ID0gZ19tYWluX2NvbnRl
eHRfbmV3KCk7CisgICAgZ19tYWluX2NvbnRleHRfcHVzaF90aHJlYWRfZGVmYXVsdChtX2NvbnRl
eHQpOworICAgIG1fbG9vcCA9IGdfbWFpbl9sb29wX25ldyhtX2NvbnRleHQsIEZBTFNFKTsKKwor
ICAgIG1fYnVmZmVyRnJvbnRMZWZ0ID0gZ3N0X2J1ZmZlcl9uZXcoKTsKKyAgICBtX2J1ZmZlckZy
b250UmlnaHQgPSBnc3RfYnVmZmVyX25ldygpOworCisgICAgLy8gU3RhcnQgdGhlIHBpcGVsaW5l
IHByb2Nlc3NpbmcganVzdCBhZnRlciB0aGUgbG9vcCBpcyBzdGFydGVkLgorICAgIEdTb3VyY2Uq
IHRpbWVvdXRTb3VyY2UgPSBnX3RpbWVvdXRfc291cmNlX25ldygwKTsKKyAgICBnX3NvdXJjZV9h
dHRhY2godGltZW91dFNvdXJjZSwgbV9jb250ZXh0KTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJh
Y2sodGltZW91dFNvdXJjZSwgKEdTb3VyY2VGdW5jKSBlbnRlcmVkTWFpbkxvb3BDYWxsYmFjaywg
dGhpcywgMCk7CisKKworICAgIGdfbWFpbl9sb29wX3J1bihtX2xvb3ApOworICAgIGdfbWFpbl9j
b250ZXh0X3BvcF90aHJlYWRfZGVmYXVsdChtX2NvbnRleHQpOworICAgIGdfbWFpbl9jb250ZXh0
X3VucmVmKG1fY29udGV4dCk7CisKKyAgICBndWludCBzaXplID0gR1NUX0JVRkZFUl9TSVpFKG1f
YnVmZmVyRnJvbnRMZWZ0KTsKKyAgICB1bnNpZ25lZCBjaGFubmVscyA9IG1peFRvTW9ubyA/IDEg
OiAyOworICAgIE93blB0cjxBdWRpb0J1cz4gYXVkaW9CdXMgPSBhZG9wdFB0cihuZXcgQXVkaW9C
dXMoY2hhbm5lbHMsIHNpemUgLyBzaXplb2YoZmxvYXQpKSk7CisgICAgYXVkaW9CdXMtPnNldFNh
bXBsZVJhdGUobV9zYW1wbGVSYXRlKTsKKworICAgIGZsb2F0KiBidWZmZXJMZWZ0ID0gZ2V0R1N0
cmVhbWVyQXVkaW9EYXRhKG1fYnVmZmVyRnJvbnRMZWZ0LCBzaXplKTsKKyAgICBmbG9hdCogYnVm
ZmVyUmlnaHQgPSBnZXRHU3RyZWFtZXJBdWRpb0RhdGEobV9idWZmZXJGcm9udFJpZ2h0LCBzaXpl
KTsKKworICAgIG1lbWNweShhdWRpb0J1cy0+Y2hhbm5lbCgwKS0+ZGF0YSgpLCBidWZmZXJMZWZ0
LCBzaXplKTsKKyAgICBpZiAoIW1peFRvTW9ubykKKyAgICAgICAgbWVtY3B5KGF1ZGlvQnVzLT5j
aGFubmVsKDEpLT5kYXRhKCksIGJ1ZmZlclJpZ2h0LCBzaXplKTsKKworICAgIGdfZnJlZShidWZm
ZXJMZWZ0KTsKKyAgICBnX2ZyZWUoYnVmZmVyUmlnaHQpOworCisgICAgZ3N0X2J1ZmZlcl91bnJl
ZihtX2J1ZmZlckZyb250TGVmdCk7CisgICAgZ3N0X2J1ZmZlcl91bnJlZihtX2J1ZmZlckZyb250
UmlnaHQpOworCisgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFU
RV9OVUxMKTsKKyAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1QobV9waXBlbGluZSkpOwor
CisgICAgcmV0dXJuIGF1ZGlvQnVzLnJlbGVhc2UoKTsKK30KKworUGFzc093blB0cjxBdWRpb0J1
cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhU
b01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAgQXVkaW9GaWxlUmVhZGVyKiByZWFkZXIg
PSBuZXcgQXVkaW9GaWxlUmVhZGVyOworICAgIHJlYWRlci0+c2V0RmlsZShmaWxlUGF0aCk7Cisg
ICAgcmV0dXJuIHJlYWRlci0+Y3JlYXRlQnVzKHNhbXBsZVJhdGUsIG1peFRvTW9ubyk7Cit9CisK
K1Bhc3NPd25QdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25z
dCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1w
bGVSYXRlKQoreworICAgIEF1ZGlvRmlsZVJlYWRlciogcmVhZGVyID0gbmV3IEF1ZGlvRmlsZVJl
YWRlcjsKKyAgICByZWFkZXItPnNldERhdGEoZGF0YSwgZGF0YVNpemUpOworICAgIHJldHVybiBy
ZWFkZXItPmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOworfQorCit9IC8vIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVy
R1N0cmVhbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNkOTQ5Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAxMSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBBdWRpb0ZpbGVSZWFkZXJH
U3RyZWFtZXJfaAorI2RlZmluZSBBdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXJfaAorCisjaW5jbHVk
ZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250
ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxvb3A7Cit0eXBlZGVmIHN0cnVj
dCBfR3N0QXBwU2luayBHc3RBcHBTaW5rOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEF1ZGlvQnVzOworCitQYXNzT3duUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxl
KGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSk7
CitQYXNzT3duUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29u
c3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2Ft
cGxlUmF0ZSk7CisKK2NsYXNzIEF1ZGlvRmlsZVJlYWRlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQXVkaW9GaWxlUmVhZGVyKTsKK3B1YmxpYzoKKyAgICBBdWRpb0ZpbGVSZWFkZXIoKTsK
KyAgICBBdWRpb0ZpbGVSZWFkZXIoY29uc3QgY2hhciogZmlsZVBhdGgpOworICAgIEF1ZGlvRmls
ZVJlYWRlcihjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpOworICAgIH5BdWRpb0Zp
bGVSZWFkZXIoKTsKKworICAgIFBhc3NPd25QdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1cyhmbG9hdCBz
YW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CisKKyAgICB2b2lkIHNldERhdGEoY29uc3Qgdm9p
ZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKTsKKyAgICB2b2lkIHNldEZpbGUoY29uc3QgY2hhciog
ZmlsZVBhdGgpOworCisgICAgY29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YTsgfQorICAgIHNpemVfdCBkYXRhU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YVNpemU7IH0K
KworICAgIHZvaWQgaGFuZGxlRW5kT2ZTdHJlYW0oKTsKKyAgICBHc3RGbG93UmV0dXJuIGhhbmRs
ZUJ1ZmZlcihHc3RBcHBTaW5rKik7CisgICAgZ2Jvb2xlYW4gaGFuZGxlTWVzc2FnZShHc3RNZXNz
YWdlKik7CisgICAgdm9pZCBoYW5kbGVOZXdEZWludGVybGVhdmVQYWQoR3N0UGFkKik7CisgICAg
dm9pZCBkZWludGVybGVhdmVQYWRzQ29uZmlndXJlZCgpOworICAgIHZvaWQgcGx1Z0RlaW50ZXJs
ZWF2ZShHc3RQYWQqKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisKK3ByaXZhdGU6CisgICAgY29uc3Qg
dm9pZCogbV9kYXRhOworICAgIHNpemVfdCBtX2RhdGFTaXplOworICAgIGNvbnN0IGNoYXIqIG1f
ZmlsZVBhdGg7CisKKyAgICBmbG9hdCBtX3NhbXBsZVJhdGU7CisgICAgR01haW5Db250ZXh0KiBt
X2NvbnRleHQ7CisgICAgR01haW5Mb29wKiBtX2xvb3A7CisgICAgR3N0QnVmZmVyKiBtX2J1ZmZl
ckZyb250TGVmdDsKKyAgICBHc3RCdWZmZXIqIG1fYnVmZmVyRnJvbnRSaWdodDsKKyAgICBHc3RF
bGVtZW50KiBtX3BpcGVsaW5lOworCisgICAgZ3Vsb25nIG1fYnVzU2lnbmFsSGFuZGxlcklkOwor
ICAgIGd1bG9uZyBtX2RlaW50ZXJsZWF2ZVBhZEFkZGVkU2lnbmFsSGFuZGxlcklkOworICAgIGd1
bG9uZyBtX2RlaW50ZXJsZWF2ZU5vTW9yZVBhZFNpZ25hbEhhbmRsZXJJZDsKKyAgICBndWxvbmcg
bV9kZWNvZGViaW5QYWRBZGRlZFNpZ25hbEhhbmRsZXJJZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEF1ZGlvRmlsZVJlYWRlckdTdHJlYW1lcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVk
aW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kM2UwOWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcApAQCAtMCwwICsxLDM2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTEgUGhp
bGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYktpdFdlYkF1
ZGlvU291cmNlR1N0cmVhbWVyLmgiCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorCisjaW5jbHVkZSAi
QXVkaW9CdXMuaCIKKyNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAi
R093blB0ci5oIgorCisjaW5jbHVkZSA8Z3N0L2F1ZGlvL211bHRpY2hhbm5lbC5oPgorI2luY2x1
ZGUgPGdzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaD4KKyNpbmNsdWRlIDxnc3QvcGJ1dGlscy9wYnV0
aWxzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisjZGVmaW5lIFdFQktJVF9XRUJf
QVVESU9fU1JDX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgo
b2JqKSwgV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQywgV2ViS2l0V2ViQXVkaW9TcmNQcml2YXRl
KSkKKworZW51bSB7CisgICAgUFJPUF9SQVRFID0gMSwKKyAgICBQUk9QX0JVUyA9IDIsCisgICAg
UFJPUF9QUk9WSURFUiA9IDMKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViQXVkaW9TcmNQcml2YXRl
IHsKKyAgICBnZmxvYXQgc2FtcGxlUmF0ZTsKKyAgICBBdWRpb0J1cyogYnVzOworICAgIEF1ZGlv
U291cmNlUHJvdmlkZXIqIHByb3ZpZGVyOworCisgICAgZ3VpbnQ2NCBvZmZzZXQ7CisgICAgR3N0
VGFzayogdGFzazsKKyAgICBHU3RhdGljUmVjTXV0ZXgqIG11dGV4OworCisgICAgR1NMaXN0KiBw
YWRzOworCisgICAgR3N0RWxlbWVudCogaW50ZXJsZWF2ZTsKKyAgICBHc3RFbGVtZW50KiB3YXZl
bmM7CisgICAgR3N0UGFkKiBzcmNwYWQ7Cit9OworCisKK3N0YXRpYyBHc3RTdGF0aWNQYWRUZW1w
bGF0ZSBzcmNUZW1wbGF0ZSA9IEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFKCJzcmMiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR1NUX1BBRF9TUkMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHU1RfUEFEX0FMV0FZUywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTVF9T
VEFUSUNfQ0FQUygiYXVkaW8veC13YXYiKSk7CisKK0dTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMo
d2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcpOworI2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgd2Vi
a2l0X3dlYl9hdWRpb19zcmNfZGVidWcKKyNkZWZpbmUgRlJBTUVTIDEyOAorI2RlZmluZSBXRUJB
VURJT19HU1RfTU9OT19DQVBTX1RFTVBMQVRFICJhdWRpby94LXJhdy1mbG9hdCwgcmF0ZT0oaW50
KSVkLCBjaGFubmVscz0oaW50KTEsIGVuZGlhbm5lc3M9KGludCklZCwgd2lkdGg9KGludCkzMiIK
KworLy8gQXVkaW9CdXMgY3VycmVudGx5IHN1cHBvcnRzIDYgY2hhbm5lbHMgbWF4aW11bS4gU2Vl
IEF1ZGlvQnVzLmguCisjZGVmaW5lIEFVRElPX0NIQU5ORUxfTUFYIDYKKworI2lmIEdfQllURV9P
UkRFUiA9PSBHX0xJVFRMRV9FTkRJQU4KKyNkZWZpbmUgX3dlYmF1ZGlvX2dzdF9ieXRlX3dyaXRl
cl9wdXRfZmxvYXQgZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMyX2xlCisjZWxzZQorI2RlZmlu
ZSBfd2ViYXVkaW9fZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdCBnc3RfYnl0ZV93cml0ZXJfcHV0
X2Zsb2F0MzJfYmUKKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0
cnVjdGVkKEdPYmplY3QqKTsKK3N0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjRmluYWxpemUo
R09iamVjdCopOworc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiwgZ3VpbnQsIGNvbnN0IEdWYWx1ZSosIEdQYXJhbVNwZWMqKTsKK3N0YXRpYyB2b2lkIHdl
YktpdFdlYkF1ZGlvU3JjR2V0UHJvcGVydHkoR09iamVjdCosIGd1aW50LCBHVmFsdWUqLCBHUGFy
YW1TcGVjKik7CitzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmND
aGFuZ2VTdGF0ZShHc3RFbGVtZW50KiwgR3N0U3RhdGVDaGFuZ2UpOworc3RhdGljIHZvaWQgd2Vi
S2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKik7CisKK3N0YXRpYyBHc3RDYXBz
KiBnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAgR093
blB0cjxnY2hhcj4gY2Fwc0Rlc2NyaXB0aW9uKGdfc3RyZHVwX3ByaW50ZihXRUJBVURJT19HU1Rf
TU9OT19DQVBTX1RFTVBMQVRFLCBzdGF0aWNfY2FzdDxpbnQ+KHNhbXBsZVJhdGUpLCBHX0JZVEVf
T1JERVIpKTsKKyAgICByZXR1cm4gZ3N0X2NhcHNfZnJvbV9zdHJpbmcoY2Fwc0Rlc2NyaXB0aW9u
LmdldCgpKTsKK30KKworc3RhdGljIEdzdEF1ZGlvQ2hhbm5lbFBvc2l0aW9uIHdlYktpdFdlYkF1
ZGlvR1N0cmVhbWVyQ2hhbm5lbFBvc2l0aW9uKGludCBjaGFubmVsSW5kZXgpCit7CisgICAgR3N0
QXVkaW9DaGFubmVsUG9zaXRpb24gcG9zaXRpb247CisKKyAgICBzd2l0Y2ggKGNoYW5uZWxJbmRl
eCkgeworICAgIGNhc2UgQXVkaW9CdXM6OkNoYW5uZWxMZWZ0OgorICAgICAgICBwb3NpdGlvbiA9
IEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0ZST05UX0xFRlQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQXVkaW9CdXM6OkNoYW5uZWxSaWdodDoKKyAgICAgICAgcG9zaXRpb24gPSBHU1Rf
QVVESU9fQ0hBTk5FTF9QT1NJVElPTl9GUk9OVF9SSUdIVDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBdWRpb0J1czo6Q2hhbm5lbENlbnRlcjoKKyAgICAgICAgLy8gQ2VudGVyIGFuZCBtb25v
IGFyZSB0aGUgc2FtZS4KKyAgICAgICAgcG9zaXRpb24gPSBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJ
VElPTl9GUk9OVF9NT05POworICAgICAgICBicmVhazsKKyAgICBjYXNlIEF1ZGlvQnVzOjpDaGFu
bmVsTEZFOgorICAgICAgICBwb3NpdGlvbiA9IEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0xG
RTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdWRpb0J1czo6Q2hhbm5lbFN1cnJvdW5kTGVm
dDoKKyAgICAgICAgcG9zaXRpb24gPSBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJVElPTl9SRUFSX0xF
RlQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXVkaW9CdXM6OkNoYW5uZWxTdXJyb3VuZFJp
Z2h0OgorICAgICAgICBwb3NpdGlvbiA9IEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX1JFQVJf
UklHSFQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAg
IH07CisKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CisKKyNkZWZpbmUgd2Via2l0X3dlYl9hdWRp
b19zcmNfcGFyZW50X2NsYXNzIHBhcmVudF9jbGFzcworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUo
V2ViS2l0V2ViQXVkaW9TcmMsIHdlYmtpdF93ZWJfYXVkaW9fc3JjLCBHU1RfVFlQRV9CSU4sIEdT
VF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF93ZWJfYXVkaW9fc3JjX2RlYnVnLCBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndlYmtpdHdlYmF1ZGlvc3JjIiwgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Vi
YXVkaW9zcmMgZWxlbWVudCIpKTsKKworc3RhdGljIHZvaWQgd2Via2l0X3dlYl9hdWRpb19zcmNf
Y2xhc3NfaW5pdChXZWJLaXRXZWJBdWRpb1NyY0NsYXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0
Q2xhc3MqIG9rbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHc3RFbGVtZW50Q2xh
c3MqIGVrbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTKGtsYXNzKTsKKworICAgIGdzdF9lbGVtZW50
X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoZWtsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KCZzcmNUZW1wbGF0ZSkp
OworICAgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZShla2xhc3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2hhciopICJXZWJLaXQgV2Vi
QXVkaW8gc291cmNlIGVsZW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZ2NoYXIqKSAiU291cmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGdjaGFyKikgIkhhbmRsZXMgV2ViQXVkaW8gZGF0YSBmcm9tIFdlYkNvcmUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NoYXIqKSAiUGhp
bGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4iKTsKKworICAgIG9rbGFzcy0+Y29u
c3RydWN0ZWQgPSB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkOworICAgIG9rbGFzcy0+Zmlu
YWxpemUgPSB3ZWJLaXRXZWJBdWRpb1NyY0ZpbmFsaXplOworICAgIGVrbGFzcy0+Y2hhbmdlX3N0
YXRlID0gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZTsKKworICAgIG9rbGFzcy0+c2V0X3By
b3BlcnR5ID0gd2ViS2l0V2ViQXVkaW9TcmNTZXRQcm9wZXJ0eTsKKyAgICBva2xhc3MtPmdldF9w
cm9wZXJ0eSA9IHdlYktpdFdlYkF1ZGlvU3JjR2V0UHJvcGVydHk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KG9rbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBST1BfUkFURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19mbG9hdCgicmF0ZSIsICJyYXRlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2FtcGxlIHJhdGUiLCBHX01JTkRP
VUJMRSwgR19NQVhET1VCTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNDQxMDAuMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpIChHX1BBUkFNX0NPTlNUUlVD
VF9PTkxZIHwgR19QQVJBTV9SRUFEV1JJVEUpKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KG9rbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfQlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX3BvaW50ZXIoImJ1cyIsICJidXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJ1cyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpIChHX1BBUkFN
X0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9SRUFEV1JJVEUpKSk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KG9rbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBST1BfUFJPVklERVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfcG9pbnRlcigicHJvdmlkZXIiLCAicHJvdmlkZXIiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb3Zp
ZGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChHUGFyYW1GbGFncykgKEdfUEFSQU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1JF
QURXUklURSkpKTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9m
KFdlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X2F1ZGlvX3NyY19pbml0KFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCit7CisgICAgR3N0UGFkVGVt
cGxhdGUqIHBhZFRlbXBsYXRlID0gZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KCZzcmNUZW1w
bGF0ZSk7CisgICAgV2ViS2l0V2ViQXVkaW9TcmNQcml2YXRlKiBwcml2ID0gV0VCS0lUX1dFQl9B
VURJT19TUkNfR0VUX1BSSVZBVEUoc3JjKTsKKworICAgIHNyYy0+cHJpdiA9IHByaXY7CisKKyAg
ICBwcml2LT5zcmNwYWQgPSBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0
ZSgic3JjIiwgcGFkVGVtcGxhdGUpOworICAgIGdzdF9lbGVtZW50X2FkZF9wYWQoR1NUX0VMRU1F
TlQoc3JjKSwgcHJpdi0+c3JjcGFkKTsKKworICAgIHByaXYtPnByb3ZpZGVyID0gMDsKKyAgICBw
cml2LT5idXMgPSAwOworICAgIHByaXYtPm9mZnNldCA9IDA7CisKKyAgICBwcml2LT5tdXRleCA9
IGdfbmV3KEdTdGF0aWNSZWNNdXRleCwgMSk7CisgICAgZ19zdGF0aWNfcmVjX211dGV4X2luaXQo
cHJpdi0+bXV0ZXgpOworCisgICAgcHJpdi0+dGFzayA9IGdzdF90YXNrX2NyZWF0ZSgoR3N0VGFz
a0Z1bmN0aW9uKSB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AsIHNyYyk7CisgICAgZ3N0X3Rhc2tfc2V0
X2xvY2socHJpdi0+dGFzaywgcHJpdi0+bXV0ZXgpOworfQorCitzdGF0aWMgdm9pZCB3ZWJLaXRX
ZWJBdWRpb1NyY0NvbnN0cnVjdGVkKEdPYmplY3QgKm9iamVjdCkKK3sKKyAgICBBU1NFUlQocHJp
di0+YnVzKTsKKyAgICBBU1NFUlQocHJpdi0+cHJvdmlkZXIpOworICAgIEFTU0VSVChwcml2LT5z
YW1wbGVSYXRlKTsKKworICAgIFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMgPSBXRUJLSVRfV0VCX0FV
RElPX1NSQyhvYmplY3QpOworICAgIFdlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSogcHJpdiA9IHNy
Yy0+cHJpdjsKKyAgICBHc3RDYXBzKiBtb25vQ2FwcyA9IGdldEdTdHJlYW1lck1vbm9BdWRpb0Nh
cHMocHJpdi0+c2FtcGxlUmF0ZSk7CisKKyAgICBwcml2LT5pbnRlcmxlYXZlID0gZ3N0X2VsZW1l
bnRfZmFjdG9yeV9tYWtlKCJpbnRlcmxlYXZlIiwgMCk7CisgICAgcHJpdi0+d2F2ZW5jID0gZ3N0
X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ3YXZlbmMiLCAwKTsKKyAgICBnc3RfYmluX2FkZF9tYW55
KEdTVF9CSU4oc3JjKSwgcHJpdi0+aW50ZXJsZWF2ZSwgcHJpdi0+d2F2ZW5jLCBOVUxMKTsKKyAg
ICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChwcml2LT5pbnRlcmxlYXZlLCAic3JjIiwgcHJp
di0+d2F2ZW5jLCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKworICAgIC8v
IEZvciBlYWNoIGNoYW5uZWwgb2YgdGhlIGJ1cyBjcmVhdGUgYSBuZXcgdXBzdHJlYW0gYnJhbmNo
IGZvciBpbnRlcmxlYXZlLCBsaWtlOgorICAgIC8vIHF1ZXVlICEgY2Fwc2ZpbHRlciAhIGF1ZGlv
Y29udmVydC4gd2hpY2ggaXMgcGx1Z2dlZCB0byBhIG5ldyBpbnRlcmxlYXZlIHJlcXVlc3Qgc3Jj
cGFkLgorICAgIGZvciAodW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwg
QVVESU9fQ0hBTk5FTF9NQVg7IGNoYW5uZWxJbmRleCsrKSB7CisgICAgICAgIEF1ZGlvQ2hhbm5l
bCogY2hhbm5lbCA9IHByaXYtPmJ1cy0+Y2hhbm5lbEJ5VHlwZShjaGFubmVsSW5kZXgpOworICAg
ICAgICBHc3RQYWQqIHBhZCA9IDA7CisgICAgICAgIGlmIChjaGFubmVsKSB7CisgICAgICAgICAg
ICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCAw
KTsKKyAgICAgICAgICAgIEdzdEVsZW1lbnQqIGNhcHNmaWx0ZXIgPSBnc3RfZWxlbWVudF9mYWN0
b3J5X21ha2UoImNhcHNmaWx0ZXIiLCAwKTsKKyAgICAgICAgICAgIEdzdEVsZW1lbnQqIGF1ZGlv
Y29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7Cisg
ICAgICAgICAgICBnX29iamVjdF9zZXQoY2Fwc2ZpbHRlciwgImNhcHMiLCBtb25vQ2FwcywgTlVM
TCk7CisKKyAgICAgICAgICAgIHBhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVl
LCAic2luayIpOworCisgICAgICAgICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4oc3JjKSwg
cXVldWUsIGNhcHNmaWx0ZXIsIGF1ZGlvY29udmVydCwgTlVMTCk7CisgICAgICAgICAgICBnc3Rf
ZWxlbWVudF9saW5rX3BhZHNfZnVsbChxdWV1ZSwgInNyYyIsIGNhcHNmaWx0ZXIsICJzaW5rIiwg
R1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfbGlu
a19wYWRzX2Z1bGwoY2Fwc2ZpbHRlciwgInNyYyIsIGF1ZGlvY29udmVydCwgInNpbmsiLCBHU1Rf
UEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisKKyAgICAgICAgICAgIEdzdFBhZCogc3JjUGFkID0g
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoYXVkaW9jb252ZXJ0LCAic3JjIik7CisgICAgICAg
ICAgICBHc3RQYWQqIHNpbmtQYWQgPSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQocHJpdi0+
aW50ZXJsZWF2ZSwgInNpbmslZCIpOworICAgICAgICAgICAgZ3N0X3BhZF9saW5rKHNyY1BhZCwg
c2lua1BhZCk7CisgICAgICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1Qoc3JjUGFk
KSk7CisgICAgICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1Qoc2lua1BhZCkpOwor
ICAgICAgICB9CisgICAgICAgIHByaXYtPnBhZHMgPSBnX3NsaXN0X3ByZXBlbmQocHJpdi0+cGFk
cywgcGFkKTsKKyAgICB9CisgICAgcHJpdi0+cGFkcyA9IGdfc2xpc3RfcmV2ZXJzZShwcml2LT5w
YWRzKTsKKworICAgIC8vIHdhdmVuYyBpcyB0aGUgb25seSB2aXNpYmxlIHNvdXJjZSBwYWQgb2Yg
b3VyIGVsZW1lbnQuCisgICAgR3N0UGFkKiB0YXJnZXRQYWQgPSBnc3RfZWxlbWVudF9nZXRfc3Rh
dGljX3BhZChwcml2LT53YXZlbmMsICJzcmMiKTsKKyAgICBnc3RfZ2hvc3RfcGFkX3NldF90YXJn
ZXQoR1NUX0dIT1NUX1BBRChwcml2LT5zcmNwYWQpLCB0YXJnZXRQYWQpOworICAgIGdzdF9vYmpl
Y3RfdW5yZWYodGFyZ2V0UGFkKTsKK30KKworc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNG
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgV2ViS2l0V2ViQXVkaW9TcmMqIHNyYyA9
IFdFQktJVF9XRUJfQVVESU9fU1JDKG9iamVjdCk7CisgICAgV2ViS2l0V2ViQXVkaW9TcmNQcml2
YXRlKiBwcml2ID0gc3JjLT5wcml2OworCisgICAgZ3N0X29iamVjdF91bnJlZihwcml2LT50YXNr
KTsKKyAgICBnX3N0YXRpY19yZWNfbXV0ZXhfZnJlZShwcml2LT5tdXRleCk7CisKKyAgICBnX3Ns
aXN0X2ZyZWVfZnVsbChwcml2LT5wYWRzLCAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9vYmplY3RfdW5y
ZWYpOworCisgICAgR1NUX0NBTExfUEFSRU5UKEdfT0JKRUNUX0NMQVNTLCBmaW5hbGl6ZSwgKChH
T2JqZWN0KiApKHNyYykpKTsKK30KKworc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNTZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJRCwgY29uc3QgR1ZhbHVlKiB2YWx1
ZSwgR1BhcmFtU3BlYyogcHNwZWMpCit7CisgICAgV2ViS2l0V2ViQXVkaW9TcmMqIHNyYyA9IFdF
QktJVF9XRUJfQVVESU9fU1JDKG9iamVjdCk7CisgICAgV2ViS2l0V2ViQXVkaW9TcmNQcml2YXRl
KiBwcml2ID0gc3JjLT5wcml2OworCisgICAgc3dpdGNoIChwcm9wSUQpIHsKKyAgICBjYXNlIFBS
T1BfUkFURToKKyAgICAgICAgcHJpdi0+c2FtcGxlUmF0ZSA9IGdfdmFsdWVfZ2V0X2Zsb2F0KHZh
bHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0JVUzoKKyAgICAgICAgcHJpdi0+
YnVzID0gKEF1ZGlvQnVzKikgZ192YWx1ZV9nZXRfcG9pbnRlcih2YWx1ZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9QUk9WSURFUjoKKyAgICAgICAgcHJpdi0+cHJvdmlkZXIgPSAo
QXVkaW9Tb3VyY2VQcm92aWRlciopIGdfdmFsdWVfZ2V0X3BvaW50ZXIodmFsdWUpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP
UEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
fQorCitzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0dldFByb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcElELCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sK
KyAgICBXZWJLaXRXZWJBdWRpb1NyYyogc3JjID0gV0VCS0lUX1dFQl9BVURJT19TUkMob2JqZWN0
KTsKKyAgICBXZWJLaXRXZWJBdWRpb1NyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CisKKyAg
ICBzd2l0Y2ggKHByb3BJRCkgeworICAgIGNhc2UgUFJPUF9SQVRFOgorICAgICAgICBnX3ZhbHVl
X3NldF9mbG9hdCh2YWx1ZSwgcHJpdi0+c2FtcGxlUmF0ZSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUFJPUF9CVVM6CisgICAgICAgIGdfdmFsdWVfc2V0X3BvaW50ZXIodmFsdWUsIHByaXYt
PmJ1cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9QUk9WSURFUjoKKyAgICAgICAg
Z192YWx1ZV9zZXRfcG9pbnRlcih2YWx1ZSwgcHJpdi0+cHJvdmlkZXIpOworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wSUQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitz
dGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykK
K3sKKyAgICBXZWJLaXRXZWJBdWRpb1NyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CisKKyAg
ICBBU1NFUlQocHJpdi0+YnVzKTsKKyAgICBBU1NFUlQocHJpdi0+cHJvdmlkZXIpOworICAgIGlm
ICghcHJpdi0+cHJvdmlkZXIgfHwgIXByaXYtPmJ1cykKKyAgICAgICAgcmV0dXJuOworCisgICAg
cHJpdi0+cHJvdmlkZXItPnByb3ZpZGVJbnB1dChwcml2LT5idXMsIEZSQU1FUyk7CisKKyAgICBm
b3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgQVVESU9fQ0hBTk5FTF9NQVg7IGluZGV4KyspIHsK
KyAgICAgICAgR3N0UGFkKiBwYWQgPSBzdGF0aWNfY2FzdDxHc3RQYWQqPihnX3NsaXN0X250aF9k
YXRhKHByaXYtPnBhZHMsIGluZGV4KSk7CisgICAgICAgIGlmICghcGFkKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgZmxvYXQqIHB0ciA9IHByaXYtPmJ1cy0+Y2hhbm5lbChpbmRl
eCktPmRhdGEoKTsKKyAgICAgICAgR3N0Qnl0ZVdyaXRlciogd3JpdGVyID0gZ3N0X2J5dGVfd3Jp
dGVyX25ld193aXRoX3NpemUoRlJBTUVTICogc2l6ZW9mKGZsb2F0KSwgVFJVRSk7CisKKyAgICAg
ICAgZm9yIChpbnQgZnJhbWVOdW1iZXIgPSAwOyBmcmFtZU51bWJlciA8IEZSQU1FUzsgKytmcmFt
ZU51bWJlcikgeworICAgICAgICAgICAgZmxvYXQgc2FtcGxlID0gKnB0cisrOworICAgICAgICAg
ICAgX3dlYmF1ZGlvX2dzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQod3JpdGVyLCAoZ2Zsb2F0KSBz
YW1wbGUpOworICAgICAgICB9CisKKyAgICAgICAgR3N0Q2FwcyogbW9ub0NhcHMgPSBnZXRHU3Ry
ZWFtZXJNb25vQXVkaW9DYXBzKHByaXYtPnNhbXBsZVJhdGUpOworICAgICAgICBHc3RTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUobW9ub0NhcHMsIDApOworICAg
ICAgICBnc3Rfc3RydWN0dXJlX3NldChzdHJ1Y3R1cmUsICJjaGFubmVscyIsIEdfVFlQRV9JTlQs
IDEsIE5VTEwpOworICAgICAgICBHc3RBdWRpb0NoYW5uZWxQb3NpdGlvbiBjaGFubmVsUG9zaXRp
b24gPSB3ZWJLaXRXZWJBdWRpb0dTdHJlYW1lckNoYW5uZWxQb3NpdGlvbihpbmRleCk7CisgICAg
ICAgIGdzdF9hdWRpb19zZXRfY2hhbm5lbF9wb3NpdGlvbnMoc3RydWN0dXJlLCAmY2hhbm5lbFBv
c2l0aW9uKTsKKworICAgICAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9ieXRlX3dyaXRlcl9m
cmVlX2FuZF9nZXRfYnVmZmVyKHdyaXRlcik7CisgICAgICAgIGdzdF9idWZmZXJfc2V0X2NhcHMo
YnVmZmVyLCBtb25vQ2Fwcyk7CisKKyAgICAgICAgR1NUX0JVRkZFUl9PRkZTRVQoYnVmZmVyKSA9
IHByaXYtPm9mZnNldDsKKyAgICAgICAgZ3N0X3BhZF9jaGFpbihwYWQsIGJ1ZmZlcik7CisgICAg
fQorCisgICAgcHJpdi0+b2Zmc2V0ICs9IEZSQU1FUzsKK30KKworc3RhdGljIEdzdFN0YXRlQ2hh
bmdlUmV0dXJuIHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVu
dCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKK3sKKyAgICBHc3RTdGF0ZUNoYW5nZVJldHVy
biByZXQgPSBHU1RfU1RBVEVfQ0hBTkdFX1NVQ0NFU1M7CisgICAgV2ViS2l0V2ViQXVkaW9TcmMq
IHNyYyA9IFdFQktJVF9XRUJfQVVESU9fU1JDKGVsZW1lbnQpOworCisgICAgcmV0ID0gR1NUX0VM
RU1FTlRfQ0xBU1MocGFyZW50X2NsYXNzKS0+Y2hhbmdlX3N0YXRlKGVsZW1lbnQsIHRyYW5zaXRp
b24pOworICAgIGlmIChHX1VOTElLRUxZKHJldCA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUp
KSB7CisgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU3RhdGUgY2hhbmdlIGZhaWxlZCIp
OworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHN3aXRjaCAodHJhbnNpdGlvbikg
eworICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9SRUFEWV9UT19QQVVTRUQ6CisgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1Qoc3JjLCAiUkVBRFktPlBBVVNFRCIpOworICAgICAgICBpZiAoIWdzdF90
YXNrX3N0YXJ0KHNyYy0+cHJpdi0+dGFzaykpCisgICAgICAgICAgICByZXQgPSBHU1RfU1RBVEVf
Q0hBTkdFX0ZBSUxVUkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5H
RV9QQVVTRURfVE9fUkVBRFk6CisgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUEFVU0VE
LT5SRUFEWSIpOworICAgICAgICBpZiAoIWdzdF90YXNrX2pvaW4oc3JjLT5wcml2LT50YXNrKSkK
KyAgICAgICAgICAgIHJldCA9IEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJl
dDsKK30KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFt
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJB
dWRpb1NvdXJjZUdTdHJlYW1lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjA4Zjk1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuaApAQCAtMCwwICsxLDUy
IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMSBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBX
ZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lcl9oCisjZGVmaW5lIFdlYktpdFdlYkF1ZGlvU291
cmNlR1N0cmVhbWVyX2gKKyNpZiBVU0UoR1NUUkVBTUVSKQorCisjaW5jbHVkZSA8Z3N0L2dzdC5o
PgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQyAg
ICAgICAgICAgICh3ZWJraXRfd2ViX2F1ZGlvX3NyY19nZXRfdHlwZSAoKSkKKyNkZWZpbmUgV0VC
S0lUX1dFQl9BVURJT19TUkMob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCAoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9BVURJT19TUkMsIFdlYktpdFdlYkF1ZGlvU3Jj
KSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9BVURJT19TUkNfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQywgV2Vi
S2l0V2ViQXVkaW9TcmNDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfQVVESU9fU1JDKG9i
aikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBXRUJLSVRfVFlQ
RV9XRUJfQVVESU9fU1JDKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9BVURJT19TUkNfQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgV0VCS0lUX1RZUEVfV0VC
X0FVRElPX1NSQykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJBdWRpb1NyYyAgICAgICAg
V2ViS2l0V2ViQXVkaW9TcmM7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQXVkaW9TcmNDbGFz
cyAgIFdlYktpdFdlYkF1ZGlvU3JjQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQXVk
aW9TcmNQcml2YXRlIFdlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRX
ZWJBdWRpb1NyYyB7CisgICAgR3N0QmluIHBhcmVudDsKKworICAgIFdlYktpdFdlYkF1ZGlvU3Jj
UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViQXVkaW9TcmNDbGFzcyB7Cisg
ICAgR3N0QmluQ2xhc3MgcGFyZW50Q2xhc3M7Cit9OworCitHVHlwZSB3ZWJraXRfd2ViX2F1ZGlv
X3NyY19nZXRfdHlwZSh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8vIFVTRShHU1RS
RUFNRVIpCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2d0ay9BdWRpb0J1c0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9ndGsv
QXVkaW9CdXNHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYWVj
MWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9ndGsv
QXVkaW9CdXNHdGsuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAy
MDExIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VC
X0FVRElPKQorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvRmlsZVJl
YWRlckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdPd25QdHIuaCIKKworI2luY2x1ZGUgPGdpby9n
aW8uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093
blB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIq
IG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAgR093blB0cjxnY2hhcj4gZmlsZW5hbWUo
Z19zdHJkdXBfcHJpbnRmKCIlcy53YXYiLCBuYW1lKSk7CisgICAgR093blB0cjxnY2hhcj4gYWJz
b2x1dGVGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid2Via2l0Z3RrLSJXRUJL
SVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HLCAicmVzb3VyY2VzIiwgImF1ZGlvIiwgZmlsZW5hbWUu
Z2V0KCksIE5VTEwpKTsKKyAgICBHRmlsZSogZmlsZSA9IGdfZmlsZV9uZXdfZm9yX3BhdGgoZmls
ZW5hbWUuZ2V0KCkpOworICAgIGlmICghZ19maWxlX3F1ZXJ5X2V4aXN0cyhmaWxlLCAwKSkgewor
ICAgICAgICAvLyBVbmluc3RhbGxlZCBjYXNlLCBhc3N1bWUgd2UncmUgaW4gdGhlIFdlYktpdCBy
b290IGRpcmVjdG9yeS4KKyAgICAgICAgYWJzb2x1dGVGaWxlbmFtZS5zZXQoZ19idWlsZF9maWxl
bmFtZShERVJJVkVEX0FVRElPX1JFU09VUkNFU19ESVIsIGZpbGVuYW1lLmdldCgpLCBOVUxMKSk7
CisgICAgfQorICAgIHJldHVybiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGFic29sdXRlRmlsZW5h
bWUuZ2V0KCksIGZhbHNlLCBzYW1wbGVSYXRlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyYWQ0
ZTJkLi42MGZkYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTAt
MDggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
U3RyZWFtZXJdIFdlYkF1ZGlvIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM1NQorCisgICAgICAgIE5ldyBlbmFibGUtd2Vi
YXVkaW8gc2V0dGluZ3MgcHJvcGVydHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19p
bml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKKyAgICAg
ICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKKwogMjAxMS0wOS0yOCAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTW92
ZSBkcmFnLWFuZC1kcm9wIGNvZGUgd2hpY2ggY2FuIGJlIHNoYXJlZCB3aXRoIFdlYktpdDIgdG8g
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9T
b3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCBkZTBlODYwLi45ZGQ0YTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtNjYsNiArNjYsNyBAQCBsaWJ3ZWJraXRndGtf
QFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lP
TkBfbGFfQ1BQRgogCSQoR1NUUkVBTUVSX0NGTEFHUykgXAogCSQoR1RLX0NGTEFHUykgXAogCSQo
SElMRE9OX0NGTEFHUykgXAorCSQoTElCRkZUV19DRkxBR1MpIFwKIAkkKExJQlNPVVBfQ0ZMQUdT
KSBcCiAJJChMSUJYTUxfQ0ZMQUdTKSBcCiAJJChMSUJYU0xUX0NGTEFHUykgXApAQCAtOTYsNiAr
OTcsNyBAQCBsaWJ3ZWJraXRndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJ
VEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfTElCQQogCSQoR1RLX0xJQlMpIFwKIAkkKEhJTERP
Tl9MSUJTKSBcCiAJJChKUEVHX0xJQlMpIFwKKwkkKExJQkZGVFdfTElCUykgXAogCSQoTElCU09V
UF9MSUJTKSBcCiAJJChMSUJYTUxfTElCUykgXAogCSQoTElCWFNMVF9MSUJTKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAppbmRleCAzNGU0MzIx
Li4yNWUwOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAKQEAgLTExOCw3ICsxMTgsOCBAQCBlbnVtIHsKICAgICBQUk9QX0VOQUJMRV9IWVBF
UkxJTktfQVVESVRJTkcsCiAgICAgUFJPUF9FTkFCTEVfRlVMTFNDUkVFTiwKICAgICBQUk9QX0VO
QUJMRV9ETlNfUFJFRkVUQ0hJTkcsCi0gICAgUFJPUF9FTkFCTEVfV0VCR0wKKyAgICBQUk9QX0VO
QUJMRV9XRUJHTCwKKyAgICBQUk9QX0VOQUJMRV9XRUJfQVVESU8KIH07CiAKIC8vIENyZWF0ZSBh
IGRlZmF1bHQgdXNlciBhZ2VudCBzdHJpbmcKQEAgLTkwOCw2ICs5MDksMjEgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFdlYlNldHRpbmdzQ2xhc3Mq
IGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiV2hldGhlciBXZWJHTCBjb250ZW50IHNob3VsZCBiZSByZW5kZXJlZCIpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmbGFncykpOworICAgIC8qKgorICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxl
LXdlYmF1ZGlvOgorICAgICoKKyAgICAqIEVuYWJsZSBvciBkaXNhYmxlIHN1cHBvcnQgZm9yIFdl
YkF1ZGlvIG9uIHBhZ2VzLgorICAgICoKKyAgICAqIFNpbmNlOiBUT0RPCisgICAgKi8KKyAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9XRUJfQVVESU8sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxl
LXdlYmF1ZGlvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIkVuYWJsZSBXZWJBdWRpbyIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciBXZWJBdWRpbyBj
b250ZW50IHNob3VsZCBiZSBoYW5kbGVkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7CisKIAogICAgIC8q
KgogICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLWRucy1wcmVmZXRjaGluZwpAQCAtMTA5
Myw2ICsxMTA5LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb24KICAgICBjYXNlIFBST1BfRU5B
QkxFX1dFQkdMOgogICAgICAgICBwcml2LT5lbmFibGVXZWJnbCA9IGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfRU5BQkxFX1dFQl9BVURJ
TzoKKyAgICAgICAgcHJpdi0+ZW5hYmxlV2ViQXVkaW8gPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZh
bHVlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FS
Tl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAgICBi
cmVhazsKQEAgLTEyNTIsNiArMTI3MSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGlu
Z3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAg
Y2FzZSBQUk9QX0VOQUJMRV9XRUJHTDoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1
ZSwgcHJpdi0+ZW5hYmxlV2ViZ2wpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfRU5B
QkxFX1dFQl9BVURJTzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+
ZW5hYmxlV2ViQXVkaW8pOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzcHJpdmF0ZS5oCmluZGV4IGE1ZjUxYjQuLjgyM2MzNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKQEAg
LTc4LDYgKzc4LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAgIGdi
b29sZWFuIGVuYWJsZUZ1bGxzY3JlZW47CiAgICAgZ2Jvb2xlYW4gZW5hYmxlRE5TUHJlZmV0Y2hp
bmc7CiAgICAgZ2Jvb2xlYW4gZW5hYmxlV2ViZ2w7CisgICAgZ2Jvb2xlYW4gZW5hYmxlV2ViQXVk
aW87CiB9OwogCiBXRUJLSVRfQVBJIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFf
cGx1Z2luX2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiwgY29uc3QgZ2NoYXIqIGRpcmVjdG9yeSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggZTA0NTZm
My4uNzgzZjQ1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAKQEAgLTMxNjAsNiArMzE2MCwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfdXBk
YXRlX3NldHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgY29yZVNldHRpbmdzLT5z
ZXRXZWJHTEVuYWJsZWQoc2V0dGluZ3NQcml2YXRlLT5lbmFibGVXZWJnbCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgY29yZVNldHRpbmdzLT5zZXRXZWJBdWRpb0VuYWJs
ZWQoc2V0dGluZ3NQcml2YXRlLT5lbmFibGVXZWJBdWRpbyk7CisjZW5kaWYKKwogICAgIGlmIChQ
YWdlKiBwYWdlID0gY29yZSh3ZWJWaWV3KSkKICAgICAgICAgcGFnZS0+c2V0VGFiS2V5Q3ljbGVz
VGhyb3VnaEVsZW1lbnRzKHNldHRpbmdzUHJpdmF0ZS0+dGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1l
bnRzKTsKIApAQCAtMzI4NCw2ICszMjg4LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d19zZXR0aW5nc19ub3RpZnkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzLCBHUGFyCiAg
ICAgICAgIHNldHRpbmdzLT5zZXRXZWJHTEVuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFs
dWUpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBlbHNlIGlmIChuYW1l
ID09IGdfaW50ZXJuX3N0cmluZygiZW5hYmxlLXdlYmF1ZGlvIikpCisgICAgICAgIHNldHRpbmdz
LT5zZXRXZWJBdWRpb0VuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKKyNlbmRp
ZgorCiAgICAgZWxzZSBpZiAoIWdfb2JqZWN0X2NsYXNzX2ZpbmRfcHJvcGVydHkoR19PQkpFQ1Rf
R0VUX0NMQVNTKHdlYlNldHRpbmdzKSwgbmFtZSkpCiAgICAgICAgIGdfd2FybmluZygiVW5leHBl
Y3RlZCBzZXR0aW5nICclcyciLCBuYW1lKTsKICAgICBnX3ZhbHVlX3Vuc2V0KCZ2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMzkwMDQ3Yi4uY2IwNzIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDExLTEwLTA4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbR1N0cmVhbWVyXSBXZWJBdWRpbyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAy
MDExLTEwLTA3ICBRaSBaaGFuZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgogCiAgICAgICAgIFtR
dF1bV0syXSBBcHBsaWNhdGlvbkNhY2hlIExheW91dFRlc3RzIGZhaWxlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbQppbmRleCA5YTc3NTA5Li5hY2U0NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtMTM4
MSw2ICsxMzgxLDcgQEAgUHJvZ3JhbXNfV2ViS2l0UGx1Z2luUHJvY2Vzc19MREFERCA9IFwKIAkk
KFhSRU5ERVJfTElCUykgXAogCSQoWFRfTElCUykgXAogCSQoV0lOTU1fTElCUykgXAorCSQoTElC
RkZUV19MSUJTKSBcCiAJJChaTElCX0xJQlMpCiAKIFByb2dyYW1zX1dlYktpdFBsdWdpblByb2Nl
c3NfTERGTEFHUyA9IFwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA3MmNlNzExLi42NGNmNDU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMDggIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJd
IFdlYkF1ZGlvIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVu
Y2UpOgorCiAyMDExLTEwLTA3ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gVG91Y2ggbW9ja2luZyBpcyBicm9rZW4gd2l0aCBR
dCA1IHBvc3QgcmVmYWN0b3IgbWVyZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDE2NDkxMTUuLjYwOWQ5YzAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcApAQCAtODA5LDYgKzgwOSw4IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om92
ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVmIHZhbHVlCiAgICAg
ICAgIHByb3BlcnR5TmFtZSA9ICJlbmFibGUtaHlwZXJsaW5rLWF1ZGl0aW5nIjsKICAgICBlbHNl
IGlmIChnX3N0cl9lcXVhbChvcmlnaW5hbE5hbWUuZ2V0KCksICJXZWJLaXRXZWJHTEVuYWJsZWQi
KSkKICAgICAgICAgcHJvcGVydHlOYW1lID0gImVuYWJsZS13ZWJnbCI7CisgICAgZWxzZSBpZiAo
Z19zdHJfZXF1YWwob3JpZ2luYWxOYW1lLmdldCgpLCAiV2ViS2l0V2ViQXVkaW9FbmFibGVkIikp
CisgICAgICAgIHByb3BlcnR5TmFtZSA9ICJlbmFibGUtd2ViYXVkaW8iOwogICAgIGVsc2UgaWYg
KGdfc3RyX2VxdWFsKG9yaWdpbmFsTmFtZS5nZXQoKSwgIldlYktpdFRhYlRvTGlua3NQcmVmZXJl
bmNlS2V5IikpIHsKICAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRMaW5rc0lu
Y2x1ZGVkSW5Gb2N1c0NoYWluKCFnX2FzY2lpX3N0cmNhc2VjbXAodmFsdWVBc1N0cmluZy5nZXQo
KSwgInRydWUiKSB8fCAhZ19hc2NpaV9zdHJjYXNlY21wKHZhbHVlQXNTdHJpbmcuZ2V0KCksICIx
IikpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1
cmUuYWMKaW5kZXggMjE3MWQ4ZC4uYjNlNTc1ZCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisr
KyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjc0LDYgKzI3NCw3IEBAIFNRTElURV9SRVFVSVJFRF9WRVJT
SU9OPTMuMAogR1NUUkVBTUVSX1JFUVVJUkVEX1ZFUlNJT049MC4xMAogR1NUUkVBTUVSX1BMVUdJ
TlNfQkFTRV9SRVFVSVJFRF9WRVJTSU9OPTAuMTAuMzAKIEVOQ0hBTlRfUkVRVUlSRURfVkVSU0lP
Tj0wLjIyCitMSUJGRlRXX1JFUVVJUkVEX1ZFUlNJT049My4yLjIKIAogIyBBdmFpbGFibGUgbW9k
dWxlcwogIwpAQCAtMTA0OCwxMCArMTA0OSwxMSBAQCBpZiB0ZXN0ICIkb3Nfd2luMzIiID0gIm5v
IjsgdGhlbgogZmkKIAogIyBjaGVjayBpZiBnc3RyZWFtZXIgaXMgYXZhaWxhYmxlCi1pZiB0ZXN0
ICIkZW5hYmxlX3ZpZGVvIiA9ICJ5ZXMiOyB0aGVuCitpZiB0ZXN0ICIkZW5hYmxlX3ZpZGVvIiA9
ICJ5ZXMiIHx8IHRlc3QgIiRlbmFibGVfd2ViX2F1ZGlvIiA9ICJ5ZXMiOyB0aGVuCiAgICBQS0df
Q0hFQ0tfTU9EVUxFUyhbR1NUUkVBTUVSXSwKICAgICAgICAgICAgICAgICAgICAgIFtnc3RyZWFt
ZXItMC4xMCA+PSAkR1NUUkVBTUVSX1JFUVVJUkVEX1ZFUlNJT04KICAgICAgICAgICAgICAgICAg
ICAgIGdzdHJlYW1lci1hcHAtMC4xMAorICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLWF1
ZGlvLTAuMTAKICAgICAgICAgICAgICAgICAgICAgIGdzdHJlYW1lci1iYXNlLTAuMTAKICAgICAg
ICAgICAgICAgICAgICAgIGdzdHJlYW1lci1pbnRlcmZhY2VzLTAuMTAKICAgICAgICAgICAgICAg
ICAgICAgIGdzdHJlYW1lci1wYnV0aWxzLTAuMTAKQEAgLTEwNjMsNiArMTA2NSwyMSBAQCBpZiB0
ZXN0ICIkZW5hYmxlX3ZpZGVvIiA9ICJ5ZXMiOyB0aGVuCiAgICBBQ19TVUJTVChbR1NUUkVBTUVS
X0xJQlNdKQogZmkKIAorIyBjaGVjayBpZiBsaWJmZnR3IGlzIGF2YWlsYWJsZQoraWYgdGVzdCAi
JGVuYWJsZV93ZWJfYXVkaW8iID0gInllcyI7IHRoZW4KKyAgIEFDX1BBVEhfUFJPRyhTT1gsIHNv
eCkKKyAgIGlmIHRlc3QgLXogIiRTT1giOyB0aGVuCisgICAgICBBQ19NU0dfRVJST1IoW1lvdSBu
ZWVkIHRoZSAnc294JyB0b29sIHRvIGNvbXBpbGUgV2ViS2l0XSkKKyAgIGZpCisgICBQS0dfQ0hF
Q0tfTU9EVUxFUyhbTElCRkZUV10sCisgICAgICAgICAgICAgICAgICAgICBbZmZ0dzMgPj0gJExJ
QkZGVFdfUkVRVUlSRURfVkVSU0lPTgorICAgICAgICAgICAgICAgICAgICAgZmZ0dzNmID49ICRM
SUJGRlRXX1JFUVVJUkVEX1ZFUlNJT05dLAorICAgICAgICAgICAgICAgICAgICAgW2hhdmVfZmZ0
dz15ZXNdKQorCisgICAgQUNfU1VCU1QoW0xJQkZGVFdfQ0ZMQUdTXSkKKyAgICBBQ19TVUJTVChb
TElCRkZUV19MSUJTXSkKK2ZpCisKICMgY2hlY2sgZm9yIGNvZGUgY292ZXJhZ2Ugc3VwcG9ydAog
aWYgdGVzdCAiJGVuYWJsZV9jb3ZlcmFnZSIgPSAieWVzIjsgdGhlbgogICAgQ09WRVJBR0VfQ0ZM
QUdTPSItTUQiCkBAIC0xMTM2LDYgKzExNTMsOSBAQCBBTV9DT05ESVRJT05BTChbVVNFX1BBTkdP
XSwgW3Rlc3QgIiR3aXRoX2ZvbnRfYmFja2VuZCIgPSAicGFuZ28iXSkKICMgR1N0cmVhbWVyIGZl
YXR1cmUgY29uZGl0aW9uYWwKIEFNX0NPTkRJVElPTkFMKFtVU0VfR1NUUkVBTUVSXSwgW3Rlc3Qg
IiRoYXZlX2dzdHJlYW1lciIgPSAieWVzIl0pCiAKKyMgV2ViIEF1ZGlvIGZlYXR1cmUgY29uZGl0
aW9uYWwKK0FNX0NPTkRJVElPTkFMKFtVU0VfV0VCQVVESU9fRkZUV10sIFt0ZXN0ICIkaGF2ZV9m
ZnR3IiA9ICJ5ZXMiXSkKKwogIyBXZWJLaXQgZmVhdHVyZSBjb25kaXRpb25hbHMKIEFNX0NPTkRJ
VElPTkFMKFtFTkFCTEVfREVCVUddLFt0ZXN0ICIkZW5hYmxlX2RlYnVnX2ZlYXR1cmVzIiA9ICJ5
ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfM0RfUkVOREVSSU5HXSxbdGVzdCAiJGVuYWJs
ZV8zZF9yZW5kZXJpbmciID0gInllcyJdKQotLSAKMS43LjcucmMx
</data>

          </attachment>
      

    </bug>

</bugzilla>